수평 선형 레이아웃에 구분선을 추가하려고하는데 아무데도 없습니다. 구분선이 표시되지 않습니다. 저는 Android를 사용하는 완전히 초보자입니다.
이것은 내 레이아웃 XML입니다.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/llTopBar"
android:orientation="horizontal"
android:divider="#00ff00"
android:dividerPadding="22dip"
android:showDividers="middle"
>
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="asdf" />
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="asdf"
/>
</LinearLayout>
</RelativeLayout>
답변
수평 구분선에 사용
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/honeycombish_blue" />
그리고 이것은 수직 분할기
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/honeycombish_blue" />
또는 수평 구분선을 위해 LinearLayout 구분선을 사용할 수있는 경우
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<size android:height="1dp"/>
<solid android:color="#f6f6f6"/>
</shape>
그리고 LinearLayout에서
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@drawable/divider"
android:orientation="vertical"
android:showDividers="middle" >
세로 구분선을 android:height="1dp"
사용하려면 모양 대신 사용하십시오.android:width="1dp"
팁 : 잊지 마세요android:showDividers
항목을 선택합니다.
답변
이것을 시도하고, res/drawable
폴더에 .
vertical_divider_1.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:width="1dip" />
<solid android:color="#666666" />
</shape>
다음과 divider
같이 LinearLayout 의 속성을 사용합니다 .
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="horizontal"
android:divider="@drawable/vertical_divider_1"
android:dividerPadding="12dip"
android:showDividers="middle"
android:background="#ffffff" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
참고 : android:divider
Android 3.0 (API 레벨 11) 이상에서만 사용할 수 있습니다.
답변
레이아웃에 구분선을 쉽게 추가 할 수 있으며 별도의보기가 필요하지 않습니다.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:divider="?android:listDivider"
android:dividerPadding="2.5dp"
android:orientation="horizontal"
android:showDividers="middle"
android:weightSum="2" ></LinearLayout>
위의 코드는 LinearLayout
답변
업데이트 : AppCompat을 사용하는 사전 Honeycomb
AppCompat 라이브러리 v7을 사용하는 경우 LinearLayoutCompat
보기 있습니다. 이 접근 방식을 사용하면 Android 2.1, 2.2 및 2.3에서 드로어 블 구분선을 사용할 수 있습니다.
예제 코드 :
<android.support.v7.widget.LinearLayoutCompat
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:showDividers="middle"
app:divider="@drawable/divider">
drawable / divider.xml : (상단과 하단에 패딩이있는 분할기)
<?xml version="1.0" encoding="UTF-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetBottom="2dp"
android:insetTop="2dp">
<shape>
<size android:width="1dp" />
<solid android:color="#FFCCCCCC" />
</shape>
</inset>
매우 중요한 참고 :LinearLayoutCompat
보기는 확장하지 않습니다 LinearLayout
그리고 당신은 사용하지 말아야 그에 android:showDividers
또는 android:divider
속성 만 정의 것들 : app:showDividers
와 app:divider
. 코드에서 당신은 또한 사용해야 LinearLayoutCompat.LayoutParams
하지를 LinearLayout.LayoutParams
!
답변
오늘도 같은 문제가 발생했습니다. 이전 답변에서 알 수 있듯이 문제는 드로어 블이 아닌 구분선 태그에 색상을 사용하기 때문에 발생합니다. 그러나 내 자신의 드로어 블 xml을 작성하는 대신 가능한 한 테마 속성을 사용하는 것을 선호합니다. android : attr / dividerHorizontal 및 android : attr / dividerVertical을 사용하여 대신 미리 정의 된 드로어 블을 가져올 수 있습니다.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:showDividers="middle"
android:divider="?android:attr/dividerVertical"
android:orientation="horizontal">
<!-- other views -->
</LinearLayout>
속성은 API 11 이상에서 사용할 수 있습니다.
또한 bocekm이 그의 답변에서 언급했듯이 dividerPadding 속성은 가정 할 수 있듯이 세로 구분선의 양쪽에 추가 패딩을 추가하지 않습니다. 대신 상단 및 하단 패딩을 정의하므로 너무 큰 경우 구분선이 잘릴 수 있습니다.
답변
내장 된 구분선을 사용할 수 있으며 두 방향 모두에서 작동합니다.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="?android:attr/listDivider"
android:orientation="horizontal"
android:showDividers="middle">
답변
실망스럽게도 활동의 코드에서 구분선을 표시하도록 설정해야합니다. 예를 들면 :
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set the view to your layout
setContentView(R.layout.yourlayout);
// Find the LinearLayout within and enable the divider
((LinearLayout)v.findViewById(R.id.llTopBar)).
setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
}