Navigation Drawer Android API specific Layout Attr

2020-02-24 04:14发布

Hello I have created a navigation drawer with ListView navigation using ActionBar Sherlock and android support Library v4 for old version compatbility (my app's minSdkversion="8") in which I have used some attributes for textview in ListView:

<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"/>

This is showing error as ?android:attr/activatedBackgroundIndicator is from API 11 and ?android:attr/textAppearanceListItemSmall & ?android:attr/listPreferredItemHeightSmall are from API 14.

I managed to support ?android:attr/activatedBackgroundIndicator by replacing it with actionBar Sherlock's ?attr/activatedBackgroundIndicator. But I didn't find any equivalence for other two attributes. There is ?attr/textAppearanceListItemSmall in actionBar Sherlock but it is not properly working.

So what are the equivalence for these attributes to provide support all the API above 2.1 ?

2条回答
兄弟一词,经得起流年.
2楼-- · 2020-02-24 04:39

I am not sure if you really need to use android dimensions (like listPreferredItemHeightSmall etc.) In some android version can that dimension be 12 and in other 14. I suggest you to create your own dimension, which will be used in your whole app, and you can easily edit them when change is needed.

查看更多
贼婆χ
3楼-- · 2020-02-24 04:49

To support lower versions, instead of removing the following three parameters,

  android:textAppearance="?android:attr/textAppearanceListItemSmall" 
  android:background="?android:attr/activatedBackgroundIndicator"
  android:minHeight="?android:attr/listPreferredItemHeightSmall"

You can actually replace them with equivalent values/resources.

The equivalent values can be obtained from https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml

Now,

查看更多
登录 后发表回答