【问题标题】:Fragment Themes片段主题
【发布时间】:2015-03-05 16:59:00
【问题描述】:

我有一个片段可以在应用程序的两个不同位置使用。根据片段的使用位置,我需要它看起来不同。

更改主要包括文本颜色、背景和某些元素的可见性。我希望能够使用相同的布局和片段,但根据使用的位置不同的主题。我不能依赖不同的活动主题,因为片段可能需要在同一个活动的两个主题中加载。

有没有办法做到这一点?我也知道在 5.0 中,我们现在可以在任何视图上指定主题属性。 appcompat 库中是否有此功能?

任何解决方案都需要在 api 16 及更高版本上运行。

谢谢, 内森

【问题讨论】:

    标签: android-fragments android-theme android-styles


    【解决方案1】:

    您可以使用 ContextThemeWrapper: http://developer.android.com/reference/android/view/ContextThemeWrapper.html

    在你的 onCreateView 中你可以

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    
            final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.yourtheme);
            LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);
            return localInflater.inflate(R.layout.yourfragment, container, false);
        }
    

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 2020-05-28
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多