Holoテーマでダイアログボックスを作成していますが、OSのデフォルトのボタン表示方法に従ってください。これまで、ダイアログボックスを作成しましたが、Holo for ICSで実行されるアプリのようにボタンがレンダリングされません。これどうやってするの?私の意図した外観は そしてここまで到達できます
少し遅れますが、誰かがまだそれに興味を持っているかもしれません。
これは私にとってはかなりうまくいきます。
...
<!--
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"
これが機能するものです:
<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%の重量配分は、ボタンのAndroid:layout_width="match_parent" and
Android:layout_weight = "1" `によるLinearLayout
の100 $サイズ変更を組み合わせたためです。
テーマは、Android Manifest xml)またはアクティビティの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>