Cách đặt dấu chia ngang giữa các văn bản chỉnh sửa trong một hoạt động


81

Tôi đang thực hiện một hoạt động để định cấu hình ứng dụng của mình và tôi phải chia các phần của cửa sổ cấu hình bằng một đường thẳng. Tôi đã sử dụng cái này:, divider_horizontal_brighttừ ví dụ này:

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

Tuy nhiên nó không hoạt động! Khi tôi kiểm tra trên điện thoại Android của mình, nó không hiển thị một đường ngang. Tại sao?

Tôi đang sử dụng Android 2.1

Câu trả lời:


144

Hãy thử liên kết này .... quy tắc ngang

Điều đó sẽ làm các trick.

Đoạn mã dưới đây là xml.

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

thêm dòng này-> android: layout_above = "@ + id / imageView2" cho một số liên quan để hiển thị / xem dòng. Nó đang hoạt động
gnganapath

Chỉ tuyệt vời! Đã thử nhiều phương pháp khác nhau. Điều này hoạt động tốt nhất!
geeky_monster

137

Nếu điều này không hiệu quả:

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

Hãy thử Chế độ xem thô này:

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

9
+1 để cung cấp ví dụ về Chế độ xem hoàn chỉnh, không chỉ các thuộc tính và đối với ví dụ về ImageView sử dụng dải phân cách có thể vẽ của Android. ImageView có vẻ thích hợp hơn vì nó sử dụng kiểu được cung cấp bởi hệ thống / chủ đề.
spaaarky21

Giải pháp tuyệt vời để cung cấp cả hai. Phiên bản hình ảnh không hiển thị 'thanh', vì vậy tôi đã chuyển sang Phiên bản xem.
TheIcemanCometh

2
Câu trả lời chính xác! Chỉ cần lưu ý: một người có thể cần phải thêm android:scaleType="fitXY"để làm cho giải pháp ImageView hoạt động (có thể điều này chỉ cần thiết với các phiên bản Android mới?)
Alberto M

1
Bạn nên thay thế paddingbằng margin, nếu không cả hai đều không hoạt động.
Ab

7

Đối với chỉ một dòng, bạn cần

...
<View android:id="@+id/primerdivisor"
android:layout_height="2dp"
android:layout_width="fill_parent"
android:background="#ffffff" /> 
...

4

Làm thế nào về việc xác định quan điểm của riêng bạn? Tôi đã sử dụng lớp bên dưới, sử dụng LinearLayout xung quanh dạng xem có màu nền được đặt. Điều này cho phép tôi xác định trước các thông số bố trí cho nó. Nếu bạn không cần, chỉ cần mở rộng Chế độ xem và đặt màu nền thay thế.

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);
    }

}

Sử dụng nó theo chương trình hoặc trong Eclipse (Chế độ xem tùy chỉnh & thư viện - chỉ cần kéo nó vào bố cục của bạn).


1

Sử dụng cái này ..... Bạn sẽ thích nó

 <TextView
    android:layout_width="fill_parent"
    android:layout_height="1px"
    android:text=" "
    android:background="#anycolor"
    android:id="@+id/textView"/>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.