我正在使用自定义列表适配器实现和应用。当我给每个具有已定义样式的列表项目充气时,样式似乎不起作用。 我打电话给膨胀这样做:
convertView = inflater.inflate(R.layout.widget,null);
布局就是这个:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="?widgetWrapperStyle">
<LinearLayout
style="@style/stat" />
<RelativeLayout
style="?widgetStyle"
android:layout_below="@+id/widgetStat" >
<TextView
android:id="@+id/head"/>
<LinearLayout
android:id="@+id/body" />
</RelativeLayout>
我的attrs.xml和style.xml是:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="widgetWrapper">
<attr name="widgetWrapperStyle" format="reference" />
</declare-styleable>
<declare-styleable name="widget">
<attr name="widgetStyle" format="reference" />
</declare-styleable>
</resources>
<style name="AppThemeDark" parent="AppBaseThemeDark">
<item name="widgetWrapperStyle">@style/widgetWrapperDark</item>
<item name="widgetStyle">@style/widget</item>
</style>
<style name="widgetWrapperDark" parent="widgetWrapper">
<item name="android:background">@color/list_item_background_dark</item>
</style>
<style name="widget">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:padding">@dimen/widget_padding</item>
</style>
非'style =“?xxxx”'似乎正在运作。当视图膨胀时,背景颜色不正确。
答案 0 :(得分:3)
在扩展布局时,使用正确配置的LayoutInflater
非常重要。特别是,它需要从Activity
创建,最好只需调用getLayoutInflater()
(或getSupportLayoutInflater()
为SherlockActivity
和亲属,IIRC)。
Dave Smith an excellent blog post审核了各种类型的Context
,包括有关主题和布局通胀的问题。