导航按钮之间的垂直线使用layout_weight

时间:2014-09-12 16:05:49

标签: android tablelayout

我有一个表格布局,可以横向显示导航栏的按钮,并且大小相同。为此,我使用android:layout_weight,但我想在导航栏的按钮之间添加一条花哨的垂直线(as you can see here for example between "messages" and "video call")我尝试了几种方法但没有成功,最后一种方法在按钮上使用了marginRight,但它似乎不能使用`android:layout_weight。< / em>的

这是我的TableLayout

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="1"
    android:layout_alignParentBottom="true"
    android:background="#c0c0c0">
    <TableRow>
      <Button
         android:id="@+id/picture"
         android:layout_width="0dip"
         android:layout_height="wrap_content"
         android:padding="0dip"
         android:layout_margin="0dip"

         android:layout_weight="1"
         android:text="Picture"
         android:background="@drawable/nav_button"
         style="@style/nav_button" />

      <Button
         android:id="@+id/friends"
         android:layout_width="0dip"
         android:layout_height="wrap_content"
         android:layout_margin="0dip"

         android:layout_weight="1"
         android:padding="0dip"
         android:text="Friends"
         android:background="@drawable/nav_button"
         style="@style/nav_button" />
    </TableRow>

</TableLayout>

2 个答案:

答案 0 :(得分:3)

实际上我不知道你为什么要使用TableLayout,但我想这不是一个要求,因为你在谈论NavBar / ActionBar。因此,我建议您使用LinearLayout,以便在两个按钮之间显示此垂直分隔线。
以下是它的工作原理:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="?android:attr/dividerVertical"
    android:dividerPadding="12dp"
    android:orientation="horizontal"
    android:showDividers="middle">

    <Button
        android:id="@+id/picture"
        style="@style/nav_button"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_margin="0dip"
        android:layout_weight="1"
        android:background="@drawable/nav_button"
        android:padding="0dip"
        android:text="Picture" />

    <Button
        android:id="@+id/friends"
        style="@style/nav_button"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_margin="0dip"
        android:layout_weight="1"
        android:background="@drawable/nav_button"
        android:padding="0dip"
        android:text="Friends" />
</LinearLayout>

注意:相关部分为android:dividerandroid:showDividers。这些是Android 3.0(API级别10)中添加的属性。您可以在Docs (click)

中详细了解相关信息

答案 1 :(得分:0)

在按钮标签之间插入视图

    <View
        android:id="@+id/divider"
        android:layout_gravity="center"
        android:background="@android:color/white"
        android:layout_width="1dp"
        android:layout_marginTop="2dp"
        android:layout_marginBottom="2dp"
        android:layout_height="match_parent" />