선형 레이아웃 하위 항목 사이에 공백을 만드는 방법은 무엇입니까?
수직 선형 레이아웃에 사용자 정의 보기를 프로그래밍 방식으로 추가하고 있으며 보기 사이에 공간이 있으면 합니다.CustomView 생성자에 padding(0, 1, 0, 1)을 추가하려고 했지만 효과가 없는 것 같습니다.조언이 있습니까?
*마진을 사용해야 한다는 지적이 있었습니다.동적으로 뷰를 추가하기 때문에 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);
*편집. 또한 아래와 같이 Linear layout에 뷰를 추가하면서 MarginLayoutParams를 매개변수로 사용해 보았습니다.이 또한 작동하지 않았습니다.
MarginLayoutParams params = new MarginLayoutParams(linearLayout.getLayoutParams());
linearLayout.setMargins(0, 10, 0, 10);
linearLayout.addView(view, params);
API >= 11 솔루션:
패딩을 구분선에 통합할 수 있습니다.아무것도 사용하지 않는 경우, 키가 큰 빈 드로잉 테이블을 만들고 다음과 같이 설정합니다.LinearLayout
의 구분 기호:
<LinearLayout
android:showDividers="middle"
android:divider="@drawable/empty_tall_divider"
...>...</LinearLayout>
empty_tall_taller.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>
당신은 그래야 한다.android:layout_margin<Side>
아이들에게패딩은 내부입니다.
Android는 이제 보기 사이에 Space 보기를 추가할 수 있습니다.4.0 ICS 이상부터 사용할 수 있습니다.
아래 샘플은 당신이 필요로 하는 것을 프로그램적으로 수행할 뿐입니다.저는 (140,398)의 고정 사이즈를 사용했습니다.
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(140, 398);
layoutParams.setMargins(24, 0, 24, 0);
layout.addView(button,layoutParams);
API Level 14에서는 (투명) 구분 기호를 추가할 수 있습니다.
android:divider="@drawable/divider"
android:showDividers="middle"
그리고 그것이 당신을 위해 나머지를 처리할 것입니다!
layout_weight가 있는 선형 레이아웃으로 항목을 래핑하면 됩니다.항목을 수평으로 구분하려면 다음을 사용합니다.
<LinearLayout
...
...
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
// your item
</LinearLayout>
</LinearLayout>
다음과 같은 보기를 추가한 후 공간 위젯을 추가해 보십시오.
layout.addView(view)
val space = Space(context)
space.minimumHeight = spaceInterval
layout.addView(space)
하위 보기 레이아웃에서 패딩을 사용합니다.
layout.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/backage_text"
android:textColor="#999999"
>
</TextView>
backage_text.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<corners android:radius="2dp"/>
<stroke
android:width="1dp"
android:color="#999999"/>
<padding
android:bottom="5dp"
android:left="10dp"
android:right="10dp"
android:top="5dp" />
</shape>
사용하다LinearLayout.LayoutParams
대신에MarginLayoutParams
여기 설명서가 있습니다.
작업 표시줄 셔록을 사용하는 경우 com.actionbarsherlock.internal을 사용할 수 있습니다.위젯Ics 선형 레이아웃:
<com.actionbarsherlock.internal.widget.IcsLinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:divider="@drawable/list_view_divider"
android:dividerPadding="2dp"
android:showDividers="middle" >
...
</com.actionbarsherlock.internal.widget.IcsLinearLayout>
사용할 수 있습니다.android:layout_weight="1"
다음과 같이:
다음 정보를 얻을 수 있습니다.LayoutParams
친부모의LinearLayout
이러한 방식으로 개별 보기에 적용할 수 있습니다.
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp.setMargins(8,8,8,8);
- setMargins()는 픽셀을 int 데이터 유형으로 사용하도록 주의합니다.값을 추가하기 전에 dp로 변환합니다.
- 위의 코드는 높이와 너비를 wrap_content로 설정합니다.사용자 지정할 수 있습니다.
언급URL : https://stackoverflow.com/questions/4259467/how-to-make-space-between-linearlayout-children
'programing' 카테고리의 다른 글
관찰 가능한 RXJS 배열에 대한 단순 필터 (0) | 2023.08.11 |
---|---|
십진수 열에 돈을 저장하는 것 - 어떤 정밀도와 규모입니까? (0) | 2023.08.11 |
PreferenceManager getDefaultSharedPreferences는 Android Q에서 더 이상 사용되지 않습니다. (0) | 2023.08.11 |
mysql 쿼리가 잘못된 인덱스를 사용합니다. (0) | 2023.08.11 |
SUM()을 사용한 기본 산술 연산 - 예기치 않은 값 (0) | 2023.08.11 |