博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Change Fragment layout on orientation change
阅读量:5944 次
发布时间:2019-06-19

本文共 1253 字,大约阅读时间需要 4 分钟。

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.

转载地址:http://oywxx.baihongyu.com/

你可能感兴趣的文章
ModelForm理解简单运用(增删改查)
查看>>
MapReduce1.x与MapReduce2.x差异
查看>>
Spring AOP小记
查看>>
Spark快速入门
查看>>
电力系统【第3章:简单电力系统的潮流分布计算】
查看>>
反射的案例
查看>>
"use strict"严格模式 顾名思义,这种模式使得Javascript在更严格的条件下运行
查看>>
kamctl start
查看>>
【设计模式】装饰者模式
查看>>
EasyUI 之datagrid 使用 【DataGrid属性解释】
查看>>
ssh整合之六管理我们的配置文件
查看>>
C++ const与define
查看>>
不要62
查看>>
POJ 1305 Fermat vs. Pythagoras【勾股数】
查看>>
HLG1159 MAGI System【大整数乘法】
查看>>
Dex动态加载
查看>>
pandas模块学习笔记2--基本功能
查看>>
吾八哥学Python(四):了解Python基础语法(下)
查看>>
设计原则——依赖倒置
查看>>
2008年国外50个最佳CSS设计欣赏
查看>>