android 修改主活动,修改ListFragment的主题与活动不同?
基本上我想在清单中设置我的活动的主题如下:android:theme="@android:style/Theme.Translucent.NoTitleBar"我想我的活动加载一个ListFragment的主题,Theme.Holo.Dialog(定义在我自己的风格),但是我不能只是在我的片段中调用setStyle(….)如果它是一个DialogFragment。我相信我应该可以使用Context
基本上我想在清单中设置我的活动的主题如下:
android:theme="@android:style/Theme.Translucent.NoTitleBar"
我想我的活动加载一个ListFragment的主题,Theme.Holo.Dialog(定义在我自己的风格),但是我不能只是在我的片段中调用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); .....
但是这不起作用。 提前致谢。 彼得。
* 编辑*发布风格:
尝试获取新的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可能会有一些缺失。
我只是简单的做到这一点:我使用style属性来定义我的XML列表项目的布局,这似乎是可行的。 我的列表项目并不太在意它们是否在片段中。 我还没有尝试对片段本身进行样式devise,但是由于列表项是其中唯一的东西,所以对它们进行造型似乎就足够了。
尝试使用requestWindowFeature(Window.FEATURE_NO_TITLE); 而不是android:theme =“@ android:style / Theme.Translucent.NoTitleBar”
并放在清单targetSdkVersion =“14”使用Theme.Holo。
也许我是误解,但是你不能只是在清单中的活动清单中设置主题?
编辑:在调查后,我最好的build议是查看dialogfragment的来源,并尝试复制在自己的customfragment中的行为。
要么
开始你的片段在一个新的fragmentactivity = /
更多推荐
所有评论(0)