我正在尝试为我的应用创建一个更好看的按钮栏以匹配主题。 到目前为止,我正在使用以下代码:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/footer"
style="@android:style/ButtonBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="bottom"
android:orientation="horizontal" >
<Button
android:id="@+id/Formula"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Formula" />
<Button
android:id="@+id/Solve"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Solve" />
<Button
android:id="@+id/Clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Clear" />
</LinearLayout>
它给我一个这样的结果:
我还在研究一些代码,用更好看的代替那个代码。它如下:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentBottom="true" >
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentTop="true"
android:layout_marginLeft="4dip"
android:layout_marginRight="4dip"
android:background="@drawable/black_white_gradient" />
<View
android:id="@+id/ViewOne"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="4dip"
android:layout_marginTop="4dip"
android:background="@drawable/black_white_gradient" />
<Button
android:id="@+id/ButtonOne"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@id/ViewOne"
android:background="@color/button_blue_background"
android:paddingTop="5dp"
android:text="Cancel"
android:textColor="@color/button_dark_text" />
<Button
android:id="@+id/ButtonTwo"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/ViewOne"
android:background="@color/button_blue_background"
android:text="OK"
android:textColor="@color/button_dark_text" />
</RelativeLayout>
导致:
所以我的问题是我无法在新黑条上获得三个按钮。我尝试使用android:layout_toRightOf属性添加更多视图和按钮,但它仍然无法正常工作。 我有什么想法可以做到这一点?
答案 0 :(得分:1)
您不需要为了显示渐变而向视图中添加视图。
我建议您将 LinearLayout 与这三个按钮一起使用,并将 layer-list xml设置为布局本身的背景。
使用渐变创建图层列表xml文件,例如 layerlist.xml :
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/gradient1"
android:id="@+id/grad1"
/>
<item
android:drawable="@drawable/gradient2"
android:id="@+id/grad2"
/>
</layer-list>
如果您只有一个渐变,那么您不需要图层列表xml文件。将其直接设置为 LinearLayout 的背景。
正如我之前所说,将 layerlist.xml (或您的单个渐变xml文件)设置为布局的背景:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/footer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="bottom"
android:orientation="horizontal"
android:background="@drawable/layerlist" >
<Button
android:id="@+id/Formula"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Formula" />
<Button
android:id="@+id/Solve"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Solve" />
<Button
android:id="@+id/Clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Clear" />
</LinearLayout>
让我知道它是否有效!
修改强>
据我所知,您可以为渐变定义合适的高度。将android:top="3dp"
添加到 layerlist.xml 文件的所需项。这意味着您的渐变将从顶部开始具有3dp的高度。
或者,如果您使用单个渐变文件,则可以定义添加到形状的宽度高度:
<size
android:height="3dp" />
答案 1 :(得分:0)
对于“三个按钮”的情况,您可以设置LinearLayour属性android:weightSum="3"
这应该为您提供三个相同大小的按钮。