2014-09-12 80 views
0

我有一个表格布局来显示我的导航栏的按钮,并且尺寸相同。为此,我使用android:layout_weight,但我想在导航栏的按钮之间插入一条花式垂直线(as you can see here for example between "messages" and "video call")我试过几种方法,没有成功,最后一个在按钮上使用marginRight,但它似乎不适用于android:layout_weight。使用layout_weight导航按钮之间的垂直线

这是我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> 

回答

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-Level 10)中添加的属性。你可以在Docs (click)中阅读更多关于它的信息。

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

不,它不适用于每个按钮的'android:layout_weight =“1”'。我可以给你的观点一个重量,但它不会一直是1dp。 – deKajoo 2014-09-12 16:51:56

+0

尝试添加没有重量的视图,只需将相同的权重添加到2个按钮,这对我来说是线性布局。 – k1slay 2014-09-12 16:54:01