我使用最新的Android Studio和SDK。在预览&真实设备我看到了这个:
我的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.myappname.view.AboutActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listViewAbout" />
</RelativeLayout>
我如何制作字幕文字颜色是灰色的?像这样:
答案 0 :(得分:2)
我要走出困境并假设您正在使用行布局simple_list_item_2.xml
(基于屏幕截图),它会为您提供两行。 问题,如果你可以这样说,那就是根据SDK版本,这个布局的styling已经改变了。
在SDK 23上,它看起来像这样:
然而,在说SDK 19时,它看起来像这样:
要理解这一点,我们首先需要查看从simple_list_item_2.xml
生成行的xml,您会看到它是一个非常简单的布局,它使用现在已弃用的视图TwoLineListItem
但这只是关于为什么要使用自定义布局的优点。
<TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/listPreferredItemHeight"
android:mode="twoLine"
android:paddingStart="?attr/listPreferredItemPaddingStart"
android:paddingEnd="?attr/listPreferredItemPaddingEnd">
<TextView android:id="@id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textAppearance="?attr/textAppearanceListItem" />
<TextView android:id="@id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/text1"
android:layout_alignStart="@id/text1"
android:textAppearance="?attr/textAppearanceListItemSecondary" />
</TwoLineListItem>
原因是每个SDK版本中解析样式textAppearanceListItemSecondary
的方式。风格赋予文本大小,颜色等.Android界面的演变催生了一个庞大的主题生态系统,依赖于默认样式会导致像你偶然发现的那样不一致。
您应该使用自己的布局来实现不同版本的统一样式。为此,请参阅涵盖此事项的任何multiple questions。但简而言之,它只是意味着创建一个布局文件,例如调用它custom_row.xml
并使布局看起来完全按照您的要求。这也使您可以完全控制项目的位置,您可能需要的额外视图,与您可能正在使用的SimpleAdapter
或ArrayAdapter
相比,编码方面的开销最小。
如果您尚未将代码移至RecyclerView
而非ListView
,则应考虑将其移至。{/ p>
答案 1 :(得分:0)
您可以设置Textview属性
android:textColor="@color/grey"
在您的适配器布局中更改子项目的颜色
希望这会有所帮助