programing

선형 레이아웃 하위 항목 사이에 공백을 만드는 방법은 무엇입니까?

powerit 2023. 8. 11. 22:39
반응형

선형 레이아웃 하위 항목 사이에 공백을 만드는 방법은 무엇입니까?

수직 선형 레이아웃에 사용자 정의 보기를 프로그래밍 방식으로 추가하고 있으며 보기 사이에 공간이 있으면 합니다.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

반응형