티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
How to make space between LinearLayout children?
LinearLayout의 자식들 사이에 간격을 어떻게 만들까요?
문제 내용
I am programatically adding custom views to a vertical LinearLayout, and I would like there to be some space between the views. I have tried adding: setPadding(0, 1, 0, 1) to my CustomView constructor, but this doesn't seem to have any effect. Any advice?
수직 LinearLayout에 프로그래밍 방식으로 사용자 지정 뷰를 추가하고, 뷰 간에 일정한 간격을 두려고 합니다. CustomView 생성자에 setPadding(0, 1, 0, 1)을 추가해 보았지만, 이렇게 하면 효과가 없는 것 같습니다. 조언을 부탁드립니다.
*It was pointed out that I should use margins. Since I am dynamically adding views, I need to set the margins from code (not in xml). I believe the way to do this is below, but it isn't working.
*마진을 사용해야한다는 지적이 있었습니다. 동적으로 뷰를 추가하고 있기 때문에 마진을 코드에서 설정해야합니다(레이아웃 xml에서 설정 불가). 아래와 같이 해야하는 것으로 이해하고 있습니다. 그러나 작동하지 않습니다.
public class MyView extends View
{
public MyView (Context context)
{
super(context);
MarginLayoutParams params = new MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(0, 10, 0, 10);
setLayoutParams(params);
*Edit. I also tried using MarginLayoutParams as a parameter while adding the views to the Linear layout (as below). This also did not work:
*편집. 제가 MarginLayoutParams를 사용하여 Linear Layout에 뷰를 추가하려고도 해보았습니다. 그러나 이것도 작동하지 않았습니다.
MarginLayoutParams params = new MarginLayoutParams(linearLayout.getLayoutParams());
linearLayout.setMargins(0, 10, 0, 10);
linearLayout.addView(view, params);
높은 점수를 받은 Solution
The API >= 11 solution:
API >= 11에 대한 해결책:
You can integrate the padding into divider. In case you were using none, just create a tall empty drawable and set it as LinearLayout
's divider:
여백(padding)을 divider에 통합시킬 수 있습니다. 만약 이전에는 divider를 사용하지 않았다면, 높은 빈 drawable을 만들고 LinearLayout의 divider로 설정하면 됩니다.
<LinearLayout
android:showDividers="middle"
android:divider="@drawable/empty_tall_divider"
...>...</LinearLayout>
empty_tall_divider.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size
android:height="40dp"
android:width="0dp"/>
</shape>
가장 최근 달린 Solution
You can use android:layout_weight="1"
android:layout_weight="1"를 사용할 수 있습니다.
이렇게 하세요:
출처 : https://stackoverflow.com/questions/4259467/how-to-make-space-between-linearlayout-children
'개발 > 안드로이드' 카테고리의 다른 글
텍스트뷰 왼쪽 드로어블을 프로그래밍 방식으로 설정하기 (0) | 2023.01.23 |
---|---|
RecyclerView에서 WRAP_CONTENT 동작 오류 수정하기 (0) | 2023.01.23 |
APK 파일에서 AndroidManifest.xml을 보기 (0) | 2023.01.20 |
안드로이드에서 "뒤로" 버튼을 눌러도 Activity가 종료되지 않게 하는 방법 (0) | 2023.01.20 |
Android에서 화면 회전 방지하기 (0) | 2023.01.20 |