zoukankan      html  css  js  c++  java
  • Change Fragment layout on orientation change

    Warning: this may be a pre-Lollipop answer.

    Fragment doesn't get re-inflated on configuration change, but you can achieve the effect as follows by creating it with a FrameLayout and (re)populating that manually:

    public class MyFragment extends Fragment {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
            FrameLayout frameLayout = new FrameLayout(getActivity());
            populateViewForOrientation(inflater, frameLayout);
            return frameLayout;
        }
    
        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            LayoutInflater inflater = LayoutInflater.from(getActivity());
            populateViewForOrientation(inflater, (ViewGroup) getView());
        }
    
        private void populateViewForOrientation(LayoutInflater inflater, ViewGroup viewGroup) {
            viewGroup.removeAllViewsInLayout();
            View subview = inflater.inflate(R.layout.my_fragment, viewGroup);
    
            // Find your buttons in subview, set up onclicks, set up callbacks to your parent fragment or activity here.
        }
    }
    

    I'm not particularly happy with the getActivity() and related calls here, but I don't think there's another way to get hold of those things.

  • 相关阅读:
    算法竞赛入门经典训练指南——UVA 11300 preading the Wealth
    hiho一下 第148周
    ajax总结及案例
    Spring事务
    Struts2拦截器介绍
    Struts2的拦截器----Dog实例
    Struts2文件的下载
    Struts2文件的上传
    Struts2类型转换
    Struts2 属性驱动、模型驱动、异常机制
  • 原文地址:https://www.cnblogs.com/dongweiq/p/5345551.html
Copyright © 2011-2022 走看看