98

水平線形レイアウトに仕切りを追加しようとしていますが、どこにも行きません。仕切りが表示されないだけです。私は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>
4

11 に答える 11

231

これを水平仕切りに使用します

<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

于 2013-02-28T06:17:09.770 に答える
69

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) 以降でのみ使用できます。

于 2013-02-28T06:24:31.967 に答える
17

更新: AppCompat を使用した事前ハニカム

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

于 2015-03-13T16:08:36.000 に答える
7

組み込みの仕切りを使用できます。これは、両方の向きで機能します。

<LinearLayout
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:divider="?android:attr/listDivider"
  android:orientation="horizontal"
  android:showDividers="middle">
于 2016-02-29T16:53:21.617 に答える
2

仕切りのパディングが大きすぎるため、仕切りが表示されない場合があります。22dip を設定します。つまり、分割線は上から 22dip、下から 22dip 切り捨てられます。レイアウトの高さが 44dip 以下の場合、仕切りは表示されません。

于 2014-05-15T16:09:29.660 に答える
-1

textview や imageview などの別のビューを作成し、その背景を設定する必要があります。それ以外の場合は、背景として色を使用します。

これがお役に立てば幸いです。

于 2013-02-28T06:20:25.293 に答える