基本上我想在清单中设置我的活动的主题如下:
android:theme="@android:style/Theme.Translucent.NoTitleBar"
我希望我的活动加载一个主题为Theme.Holo.Dialog的ListFragment(以我自己的风格定义),但我不能只在我的片段中调用setStyle(....)如果它是DialogFragment。
我相信我应该可以使用ContextThemeWrapper,但是我无法理解我需要进行的调用。到目前为止,在我的onCreateView中我有:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
LayoutInflater newInflater = inflater.cloneInContext(new ContextThemeWrapper(getActivity(), R.style.DialogThemeSelector));
View inflatedView = newInflater.inflate(R.layout.favourites_print, container, false);
.....
但这不起作用。提前致谢。彼得。
* 编辑* 发布方式:
<style name="DialogThemeSelector" parent="@android:style/Theme.Holo.Dialog"/>
答案 0 :(得分:2)
尝试获取新的LayoutInflater
而不是转换提供的Context newContext = new ContextThemeWrapper(getActivity(), R.style.DialogThemeSelector);
LayoutInflater newInflater = (LayoutInflater) newContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
View inflatedView = newInflater.inflate(R.layout.favourites_print, container, false);
,如下所示:
style
如果这不起作用,我会怀疑您的{{1}}可能缺少某些内容。
答案 1 :(得分:1)
我只是以天真的方式做到:我使用style
属性在XML中定义列表项布局,它似乎有用。我的列表项目并不关心它们是否在片段中。我没有尝试过对片段本身进行样式设置,但由于列表项是其中唯一的内容,因此设置它们似乎就足够了。
答案 2 :(得分:1)
也许我误解了,但是您是否只能在清单中为包含列表碎片的活动设置主题?
编辑:在查看之后,我最好的建议是查看dialogfragment的来源,并尝试在自己的自定义片段中复制行为。
OR
以新的fragmentactivity = /
开始你的片段答案 3 :(得分:1)
尝试使用requestWindowFeature(Window.FEATURE_NO_TITLE);而不是android:theme =“@ android:style / Theme.Translucent.NoTitleBar”
并将清单targetSdkVersion =“14”放入使用Theme.Holo。