我正在创建一个关于 Holo 主题的对话框,并希望遵循 OS 默认显示按钮的方式。到目前为止,我已经创建了对话框,但按钮的呈现方式与在 Holo for ICS 中完成的应用程序中的呈现方式不同。我怎样才能做到这一点?我的预期外观和感觉是 并且我能够到达这里
问问题
55068 次
3 回答
85
有点晚了,但也许有人仍然对此感兴趣。
这对我来说很好。
...
<!--
EDIT: be carefull, "?android:attr/dividerHorizontal" is only supported since API 11
just avoid it in prior OSs.
-->
<View
android:layout_width="fill_parent"
android:layout_height="1dip"
android:background="?android:attr/dividerHorizontal" />
<LinearLayout
style="?android:attr/buttonBarStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="0dip"
android:paddingLeft="2dip"
android:paddingRight="2dip"
android:measureWithLargestChild="true">
<Button
android:id="@+id/cancel"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@android:string/cancel"/>
<Button
android:id="@+id/ok"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@android:string/ok"/>
</LinearLayout>
...
加载此布局的活动需要 Holo.Dialog 主题。
android:theme="@android:style/Theme.Holo.Dialog"
于 2012-07-23T22:54:32.417 回答
22
这是有效的:
<LinearLayout
android:id="@+id/buttonHolder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/cmdSignup"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/Signup" />
<Button
android:id="@+id/cmdLogin"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/Login" />
</LinearLayout>
该属性style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
给出了扁平的外观和感觉,50% 的权重分布是因为结合LinearLayout
了android:layout_width="match_parent" and
android:layout_weight="1"`for 按钮的 100$ 大小
于 2012-03-21T17:23:32.943 回答
2
您可以通过 Android Manifest xml 或在 Activity 的 onCreate 中设置主题setTheme(android.R.style.Theme_Holo);
按钮大小与主题本身无关。大小取决于您的 xml 定义。在您发送的图像中,按钮似乎收到了 Holo 主题,所以这里没有任何问题......
这是一个 xml 布局,它将拉伸按钮以填充整个对话框宽度:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
>
<Button
android:id="@+id/okButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="OK"
/>
<Button
android:id="@+id/cancelButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Cancel"
/>
</LinearLayout>
</LinearLayout>
于 2012-03-21T12:03:37.200 回答