如何使用View elemnt制作水平分隔线

时间:2015-08-27 12:56:57

标签: android android-layout android-tablelayout

我正在尝试使用View元素制作水平分隔线。我使用下面的代码,但问题是尽管视图的宽度,分隔符始终是一个非常小的宽度,如图所示,设置match_parent 请让我们知道如何解决它。

更新

问题是,View总是像imageView一样宽!!我不知道为什么?任何解释?

布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TableLayout
    android:id="@+id/tl_MainTable"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">
    <TableRow
        android:id="@+id/tr_Logo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3">
        <ImageView
            android:id="@+id/iv_Logo"
            android:layout_height="wrap_content"
            android:src="@drawable/fr"
            android:adjustViewBounds="true"
            android:layout_weight="0"
            android:contentDescription="@null"/>
        <TextView
            android:id="@+id/tv_Title"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:gravity="center_horizontal"
            android:layout_weight="3"
            android:text="@string/str_Disc_Neigh_Device"/>
    </TableRow>

    <TableRow
        android:id="@+id/tr_Divider"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <View
            android:id="@+id/v_Divider"
            android:layout_width="match_parent"
            android:layout_height="3dp"
            android:background="#90909090"/>
    </TableRow>
</TableLayout>

3 个答案:

答案 0 :(得分:1)

这是我在自己的应用程序中所做的,但是采用线性布局,尽管你可以尝试一下:

<View android:layout_width="fill_parent" android:layout_height="1dp" android:id="@+id/separator1" android:visibility="visible" android:background="#00000000" android:layout_gravity="center_horizontal"/>

根据您的喜好更改background

答案 1 :(得分:0)

将您的第二个TableRow更改为LinearLayout

  <LinearLayout
        android:id="@+id/tr_Divider"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <View
            android:id="@+id/v_Divider"
            android:layout_width="match_parent"
            android:layout_height="3dp"
            android:background="#902631"
            android:layout_span="2" />
    </LinearLayout>

根据需要更改视图背景颜色。

答案 2 :(得分:0)

表布局具有默认分隔符var Messages={}; Messages.data=[{ id: "1", message: "Message 1" }, { id: "2", message: "Message 2" }, { id: "3", message: "Message 3" }, { id: "4", message: "Message 4" }]; function deleteItem(index){ for(var i=0, len=Messages.data.length; i < len; i++){ console.log(Messages.data[i]); if(index===Messages.data[i].message){ Messages.data.splice(i, 1); break; } } } deleteItem("Message 3"); console.log(Messages.data); ,您可以使用它。 也可以通过使用来设置分隔符 android:showDividers="yourvalue"