在Android中使用layout_weight的linearlayout中的无边框按钮

时间:2012-11-19 15:04:12

标签: android android-layout android-linearlayout

这是布局代码

 <LinearLayout
    android:id="@+id/mapOptions"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:layout_alignParentBottom="true"
    android:background="@color/white" >

    <View
        android:id="@+id/mapOptionMenuShade"
        android:layout_width="match_parent"
        android:layout_height="1dip"
        android:layout_marginLeft="4dip"
        android:layout_marginRight="4dip"
        android:background="?android:attr/dividerVertical" />

    <Button
        android:id="@+id/BtnMap"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="?android:attr/selectableItemBackground"
        android:text="@string/map" />

    <View
        android:id="@+id/Shade2"
        android:layout_width="1dip"
        android:layout_height="wrap_content"
        android:layout_marginBottom="4dip"
        android:layout_marginTop="4dip"
        android:background="?android:attr/dividerVertical" />

    <Button
        android:id="@+id/BtnSatellite"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="?android:attr/selectableItemBackground"
        android:text="@string/satellite" />

    <View
        android:id="@+id/Shade3"
        android:layout_width="1dip"
        android:layout_height="wrap_content"
        android:layout_marginBottom="4dip"
        android:layout_marginTop="4dip"
        android:background="?android:attr/dividerVertical" />

    <Button
        android:id="@+id/BtnHybrid"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="?android:attr/selectableItemBackground"
        android:text="@string/hybrid" />
</LinearLayout>

但是对于那些“观看”我无法显示我的按钮。

Link用于谷歌边框按钮的示例。这就是为什么我对这些观点表示赞赏。

在这里,我想显示3个无边框按钮,填充整个线性布局


| -1-- | -2-- |啉-3- | | ---- | ---- | ---- |

谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用任意查看并将onClickListener附加到Button,而不是使用TextView。因此,如果您想要无边框按钮,请改用<TextView android:id="@+id/BtnSatellite" android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="?android:attr/selectableItemBackground" android:text="@string/satellite" /> ,您将获得所需内容。尝试:

<Button
    android:id="@+id/BtnSatellite"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="?android:attr/selectableItemBackground"
    android:text="@string/satellite" />

代替你的

Button

(基本上以TextView替换findViewById()开始)。如果您致电Button并将结果转换为{{1}},请务必调整代码,如果您未将其更新,则会收到Cast Exception。

修改

替代方法是described in developers' docs "Borderless button",但是它要求设备至少运行API11(Honeycomb),所以明智地使用。

答案 1 :(得分:0)

要创建无边框按钮,需要将以下内容添加到按钮的XML代码中。这是API 11(Honeycomb)的新功能

style="?android:attr/borderlessButtonStyle"

或者,您只需使用textView或ImageView作为按钮。