LinearLayout 어린이 사이에 공간을 만드는 방법은 무엇입니까? 추가하려고 시도했지만

프로그래밍 방식으로 세로 선형 LinearLayout에 사용자 정의보기를 추가하고 있으며보기 사이에 약간의 공간이 필요합니다. setPadding (0, 1, 0, 1)을 CustomView 생성자에 추가하려고 시도했지만 아무런 효과가없는 것 같습니다. 어떤 충고?

* 여백을 사용해야한다고 지적되었습니다. 동적으로 뷰를 추가하고 있기 때문에 (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);

*편집하다. 또한 MarginLayoutParams를 매개 변수로 사용하여 뷰를 선형 레이아웃에 추가했습니다 (아래 참조). 이것은 또한 작동하지 않았습니다.

MarginLayoutParams params = new MarginLayoutParams(linearLayout.getLayoutParams());
linearLayout.setMargins(0, 10, 0, 10);
linearLayout.addView(view, params);


답변

당신은 android:layout_margin<Side>아이들에게 있어야 합니다. 패딩은 내부입니다.


답변

API> = 11 솔루션 :

패딩을 분배기에 통합 할 수 있습니다. 아무것도 사용하지 않는 경우 키가 큰 빈 드로어 블을 만들고 LinearLayout‘분배기 로 설정하십시오 .

    <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>

답변

Android는 이제 보기 사이에 공간 보기 추가를 지원합니다 . 4.0 ICS부터 사용할 수 있습니다.


답변

아래 샘플은 프로그래밍 방식으로 필요한 것을 수행합니다. 고정 크기 (140,398)를 사용했습니다.

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(140, 398);
        layoutParams.setMargins(24, 0, 24, 0);
        layout.addView(button,layoutParams);

답변

API 레벨 14부터 (투명한) 디바이더 드로어 블을 추가 할 수 있습니다.

android:divider="@drawable/divider"
android:showDividers="middle"

그리고 그것은 당신을 위해 나머지를 처리합니다!


답변

LinearLayout.LayoutParams대신에 사용하십시오 MarginLayoutParams. 여기 문서가 있습니다.


답변

ActionBarSherlock 을 사용하는 경우 com.actionbarsherlock.internal.widget.IcsLinearLayout을 사용할 수 있습니다.

<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>