gpt4 book ai didi

android - Android Fragments 中方向改变时的布局改变

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:59:39 25 4
gpt4 key购买 nike

请提出解决方案。

当我旋转我的 fragment 时,它应该变成横向模式并显示另一个布局。但是屏幕没有旋转到横向。

我的代码如下:

 <activity
android:name=".activites.MainActivity"
android:launchMode="singleInstance"
android:configChanges="keyboardHidden|screenLayout|screenSize|orientation"
/>

这是称为仪表板的主要布局,现在处于纵向模式:

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view=View.inflate(getContext(), R.frag_dashboard,null);
changeview= (ShimmerTextView)view.findViewById(R.id.changeview);
return view;
}

当我旋转屏幕时,此 fragment 变为横向模式并设置另一个布局,而 prayer_times 是新布局。

   @Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);

// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(getContext(), "landscape", Toast.LENGTH_SHORT).show();
view=View.inflate(getContext(), R.layout.prayer_times,null);

}
}

然后我为 prayer_times 创建 layout_land

最佳答案

如果你的 fragment 在方向改变时没有重新加载的问题,你可以简单地重新加载。

layoutlayout-land 文件夹中添加两个同名布局。

这将在加载时显示正确的定向布局,以便在设备旋转时更改布局在 fragment 本身的 onConfigarationChanged 方法中添加以下内容。

@Override
public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE || newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
try {
FragmentTransaction ft = getFragmentManager().beginTransaction();
if (Build.VERSION.SDK_INT >= 26) {
ft.setReorderingAllowed(false);
}
ft.detach(this).attach(this).commit();
} catch (Exception e) {
e.printStackTrace();
}
}
}

关于android - Android Fragments 中方向改变时的布局改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38450078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com