アクティビティ内の編集テキストの間に水平除数線を配置する方法


81

アプリを構成するアクティビティを作成しているので、構成ウィンドウのセクションを1行で分割する必要があります。私はこれを使用しました:divider_horizontal_bright、この例から:

http://android.cryx.li/doku.php?id=know:settings:start

しかし、それは機能しません!Androidスマートフォンでテストすると、水平線が表示されません。どうして?

私はAndroid2.1を使用しています

回答:


144

このリンクを試してください.... 水平方向のルール

それでうまくいくはずです。

以下のコードはxmlです。

<View
    android:layout_width="fill_parent"
    android:layout_height="2dip"
    android:background="#FF00FF00" />

この行を追加します-> android:layout_above = "@ + id / imageView2"は、show / view行に関連するものです。それは機能しています
gnganapath 2015年

ただ素晴らしい!いろいろな方法を試しました。これが最適です。
geeky_monster 2017

137

これが機能しなかった場合:

  <ImageView
    android:layout_gravity="center_horizontal"
    android:paddingTop="10px"
    android:paddingBottom="5px"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:src="@android:drawable/divider_horizontal_bright" />

この生のビューを試してください:

<View
    android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:background="#000000" />

9
+1は、属性だけでなく完全なViewの例を提供し、Android独自の仕切りドローアブルを使用するImageViewの例を提供します。ImageViewは、システム/テーマによって提供されるスタイルを使用するため、好ましいようです。
spaaarky21 2013年

両方を提供するための優れたソリューション。画像バージョンには「バー」が表示されなかったので、ビューバージョンに移動しました。
TheIcemanCometh

2
素晴らしい答えです!注:android:scaleType="fitXY"ImageViewソリューションを機能させるには、おそらく追加する必要があります(これは、新しいAndroidバージョンでのみ必要ですか?)
Alberto M

1
に置き換える必要があります。そうしないpaddingmargin、どちらも機能しません。
アブ


4

独自のビューを定義するのはどうですか?以下のクラスを使用して、背景色が設定されているビューの周囲にLinearLayoutを使用しました。これにより、レイアウトパラメータを事前に定義できます。それが必要ない場合は、Viewを拡張し、代わりに背景色を設定してください。

public class HorizontalRulerView extends LinearLayout {

    static final int COLOR = Color.DKGRAY;
    static final int HEIGHT = 2;
    static final int VERTICAL_MARGIN = 10;
    static final int HORIZONTAL_MARGIN = 5;
    static final int TOP_MARGIN = VERTICAL_MARGIN;
    static final int BOTTOM_MARGIN = VERTICAL_MARGIN;
    static final int LEFT_MARGIN = HORIZONTAL_MARGIN;
    static final int RIGHT_MARGIN = HORIZONTAL_MARGIN;

    public HorizontalRulerView(Context context) {
        this(context, null);
    }

    public HorizontalRulerView(Context context, AttributeSet attrs) {
        this(context, attrs, android.R.attr.textViewStyle);
    }

    public HorizontalRulerView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setOrientation(VERTICAL);
        View v = new View(context);
        v.setBackgroundColor(COLOR);
        LayoutParams lp = new LayoutParams(
            LayoutParams.MATCH_PARENT,
            HEIGHT
        );
        lp.topMargin = TOP_MARGIN;
        lp.bottomMargin = BOTTOM_MARGIN;
        lp.leftMargin = LEFT_MARGIN;
        lp.rightMargin = RIGHT_MARGIN;
        addView(v, lp);
    }

}

プログラムまたはEclipseで使用します(カスタムビューとライブラリビュー-レイアウトにプルするだけです)。


1

これを使用してください.....あなたはそれを気に入るはずです

 <TextView
    android:layout_width="fill_parent"
    android:layout_height="1px"
    android:text=" "
    android:background="#anycolor"
    android:id="@+id/textView"/>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.