gpt4 book ai didi

android - 如何知道Dialog中title和CheckedTextView默认的android att?

转载 作者:行者123 更新时间:2023-11-29 01:39:59 26 4
gpt4 key购买 nike

我已阅读文章How to customize list preference radio button

我使用下面的xml lyaout来自定义我的Dialog,我觉得android Dialog的大部分默认UI都很好,我希望继承att,只改变字体大小。

我发现 CheckedTextView 的默认 att 是 android:checkMark="?android:attr/listChoiceIndicatorSingle".

现在我希望找到这两个<TextView android:id="@+id/dialog_title" ...>的默认android att和 <ListView android:id="@android:id/list"..>,你可以告诉我吗?谢谢!

顺便说一句,listPreference 对话框标题的默认样式不是 style="?android:attr/windowTitleStyle"

顺便说一句,如果我使用 style="?android:attr/dialogTitle",我将无法获得相同的标题效果

a.PNG是使用style="?android:attr/dialogTitle"的效果 a.png

b.PNG为ListPreference默认对话框标题效果 b.png

你可以试试看,使用示例How to customize list preference radio button

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checkMark="@drawable/btn_radio_holo_light"
android:gravity="center_vertical"
android:minHeight="@dimen/list_item_minheight"
android:paddingLeft="@dimen/list_item_paddingLeft"
android:paddingRight="@dimen/list_item_paddingLeft" />



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
android:id="@+id/dialog_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:textColor="@color/title_color"
android:textSize="22sp" />

<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@color/divider_color" />

<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:listSelector="@drawable/list_selector" />

</LinearLayout>

致维克拉姆:

  1. android:textColor="@android:color/holo_blue_light"在 API 9 下不工作,如何设置 android:textColor 的颜色值?顺便说一句,android:textColor="#ff4d4dff"是错误的。
  2. android:listSelector="?android:attr/selectableItemBackground"在 API 9 下不工作,我如何为 API 9 设置?目前,我使用android:background="@android:color/white"。顺便说一句,API 9 的默认背景是黑色的。
  3. 我必须为 LinearLayout android:id="@+id/title_template"添加 android:background="@android:color/white",因为 API 9 的默认背景是黑色。

针对 API 9 进行了修改

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parentPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dip"
android:layout_marginEnd="8dip"
android:orientation="vertical">

<LinearLayout android:id="@+id/topPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout android:id="@+id/title_template"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical|start"
android:minHeight="64dip"
android:layout_marginStart="16dip"
android:background="@android:color/white"
android:layout_marginEnd="16dip">
<TextView android:id="@+id/dialog_title"
android:textSize="22sp"
android:textColor="@android:color/black"
android:singleLine="true"
android:ellipsize="end"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<View android:id="@+id/titleDivider"
android:layout_width="match_parent"
android:layout_height="2dip"
android:visibility="visible"
android:background="@android:color/black" />
<!-- If the client uses a customTitle, it will be added here. -->
</LinearLayout>

<LinearLayout android:id="@+id/contentPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:minHeight="64dp">

<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
/>
</LinearLayout>

</LinearLayout>

最佳答案

您可以基于 android 的对话框布局:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parentPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dip"
android:layout_marginEnd="8dip"
android:orientation="vertical">

<LinearLayout android:id="@+id/topPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout android:id="@+id/title_template"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical|start"
android:minHeight="64dip"
android:layout_marginStart="16dip"
android:layout_marginEnd="16dip">
<TextView android:id="@+id/alertTitle"
android:textSize="22sp"
android:textColor="@android:color/holo_blue_light"
android:singleLine="true"
android:ellipsize="end"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<View android:id="@+id/titleDivider"
android:layout_width="match_parent"
android:layout_height="2dip"
android:visibility="visible"
android:background="@android:color/holo_blue_light" />
<!-- If the client uses a customTitle, it will be added here. -->
</LinearLayout>

<LinearLayout android:id="@+id/contentPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:minHeight="64dp">

<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:listSelector="?android:attr/selectableItemBackground" />
</LinearLayout>

</LinearLayout>

使用此布局,您可以按照自己的方式自定义对话框:

常规(就像默认一样):

enter image description here

较小的文字大小:

enter image description here

不同的文本颜色和分隔线颜色:

enter image description here

要自定义,更改 TextViewtext_size 属性,id 为 alertTitle。您还可以更改 textColor

要更改分隔线的颜色/宽度,请查看 TextView 正下方的 View

编辑:

我会尝试解决您提到的三点:

#1. android:textColor="@android:color/holo_blue_light" don't work under API 9, how can I set color value for android:textColor? BTW, android:textColor="#ff4d4dff" is wrong.

正确:#ff4d4dff 不是 holo_blue_light。尝试使用 #ff33b5e5

#2. android:listSelector="?android:attr/selectableItemBackground" don't work under API 9, how can I setfor API 9? At present, I use android:background="@android:color/white". BTW, the default background of API 9 is black.

对于 API 9,您可以使用 support-v7 appcompat 库中的 ?selectableItemBackground。如果您已经在使用此支持库,请将 android:listSelector="?android:attr/selectableItemBackground" 更改为 android:listSelector="?attr/selectableItemBackground"。要了解我们为什么这样做,请参阅以下答案:Link .

但是如果您不使用这个库,或者不想只为一个可绘制对象包含这个库,您可以基于 API 17 自行构建 selectableItemBackground

我已经为此收集了必要的资源。下载此压缩文件夹:Link .在该文件夹中,您将找到 drawable-XXXX 文件夹。将这些内容复制到项目中的相应可绘制文件夹中。如何使用可绘制对象:

android:listSelector="@drawable/item_background_holo_light"

#3. I have to add android:background="@android:color/white" for LinearLayout android:id="@+id/title_template", because the default background of API 9 is black.

是的,这对我来说没问题。

关于android - 如何知道Dialog中title和CheckedTextView默认的android att?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25299140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com