您好我使用ActionBar Sherlock
和android support Library v4
创建了一个带有ListView导航的导航抽屉,用于旧版本兼容性(我的应用程序的minSdkversion =“8”),其中我在ListView中使用了textview的一些属性:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingRight="5dp"
android:textColor="#fff"
android:background="?android:attr/activatedBackgroundIndicator"
android:minHeight="?android:attr/listPreferredItemHeightSmall"/>
这显示错误,因为?android:attr/activatedBackgroundIndicator
来自API 11和?android:attr/textAppearanceListItemSmall
&amp; ?android:attr/listPreferredItemHeightSmall
来自API 14.
我设法通过将其替换为actionBar Sherlock的?android:attr/activatedBackgroundIndicator
来支持?attr/activatedBackgroundIndicator
。但我没有发现其他两个属性的任何等价。在行动棒Sherlock中有?attr/textAppearanceListItemSmall
,但它没有正常工作。
那么这些属性的等价性为2.1以上的所有API提供支持?
答案 0 :(得分:31)
要支持较低版本,而不是删除以下三个参数,
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:background="?android:attr/activatedBackgroundIndicator"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
您实际上可以用相同的值/资源替换。
可以从中获得等效值 https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml
现在,
a) android:textAppearance="@android:style/TextAppearance.Medium"
<强> b)中强>
在上面的项目中浏览hdpi,mdpi等资源并获取名为 list_activated_holo.9.png的文件
最后
android:background="@drawable/list_item_activated_background"
c)从获得的等效值中,我们知道 listPreferredItemHeightSmall 是48dip
android:minHeight="48dip"
答案 1 :(得分:2)
我不确定你是否真的需要使用android尺寸(如listPreferredItemHeightSmall
等)。在某些Android版本中,该尺寸可以是12而在其他14中。我建议你创建自己的尺寸,这将是在您的整个应用程序中使用,您可以在需要更改时轻松编辑它们。