我找不到解决方案!我正在尝试兼容 Android 2.1 及更高版本。
我尝试使用自定义主题创建与 AlertDialog 等效的内容。
我发现在 API v. 11 之前无法在 AlertDialog 上应用主题。我尝试使用 ContextThemeWrapper,但找不到自定义按钮的解决方案。
对于一个简单的视图,我使用自己的内容视图创建自己的 Dialog。我对主题做我想做的事。
但是,当我想要一个带有自定义主题和列表项的 AlertDialog 时,它就更复杂了。我找不到在列表末尾添加按钮的解决方案。因为当列表太大时,按钮在窗口之外。
我试过: - 一个相对布局:* 标题 * 标题下方的列表视图 * 列表视图下方的按钮 - 垂直线性布局
有人有想法吗?
我添加了需要的结果。
也许,我的最后一个也是非常丑陋的想法是使用构建器创建一个普通的 AlertDialog,使用 findViewById 找到每个视图并应用所需的主题属性......但我必须查看自 Android 2.1 以来 id 是否为常量......
我的布局 xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bw="http://schemas.android.com/apk/res-auto/com.levelup.beautifulwidgets"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginBottom="8dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/ab_background"
android:paddingBottom="8dp"
android:paddingTop="8dp"
android:textColor="@color/grey_1"
android:textSize="24dp" />
<FrameLayout
android:id="@+id/title_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="5dp"
android:paddingRight="10dp" />
<ListView
android:id="@+id/container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/title" />
<LinearLayout
android:id="@+id/buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@id/container"
android:layout_marginTop="5dp"
android:orientation="horizontal" >
<Button
android:id="@+id/cancel_button"
style="@style/DialogButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="-1dp"
android:layout_weight="1"
android:text="@string/cancel" />
<Button
android:id="@+id/ok_button"
style="@style/DialogButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/ok" />
</LinearLayout>
</RelativeLayout>