基本上我想在清单中设置我的活动的主题如下:

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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐