gpt4 book ai didi

android - 如何在运行时在android中添加 fragment

转载 作者:行者123 更新时间:2023-11-29 20:55:37 25 4
gpt4 key购买 nike

您好,我正在尝试编写一个程序,当设备处于纵向模式时可以显示一个 fragment ,而当设备处于横向模式时可以显示另一个 fragment 。我遇到了一些导致代码无法运行的问题:

我使用了 getWidth() 和 getHeight() 来获取纵向和横向模式,但是这些函数在 4.3 中被删除了,因为我不推荐使用它。我还可以使用其他函数来做到这一点吗?

我使用了replace()函数来显示我想要的 fragment ,但是被错误删除了

完整代码如下。您会发现我已经使用箭头和注释指出错误的位置,因此您会确切地知道我的代码中的问题所在。请查看我的代码并帮助我修复它。

公共(public)类 MainActivity 扩展了 ActionBarActivity {

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

//---get the current display info---
WindowManager wm = getWindowManager();
Display d = wm.getDefaultDisplay();

if (d.getWidth() > d.getHeight())//<----------these two functions get struck out as //an error
{
//---landscape mode---
Fragment1 fragment1 = new Fragment1();
// android.R.id.content refers to the content
// view of the activity
fragmentTransaction.replace( //<------this replace() function is seen as an //error
android.R.id.content, fragment1);
}
else
{
//---portrait mode---
Fragment2 fragment2 = new Fragment2();
fragmentTransaction.replace(//<------this replace() function is also seen as an //error
android.R.id.content, fragment2);

}
fragmentTransaction.commit();
**/

}

最佳答案

尝试在您的 onCreate 中使用这样的模式。它更简洁,而且它使用适当的 getSupportFragmentManager() 而不是继承的、有限的 getFragmentManager():

    int currentOrientation = getResources().getConfiguration().orientation;
if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE)
{

Fragment1 placeholder = new Fragment1();
placeholder.setArguments(getIntent().getExtras());
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, placeholder).commit();
} else
{
Fragment2 placeholder = new Fragment2();
placeholder.setArguments(getIntent().getExtras());
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, placeholder).commit();
}

关于android - 如何在运行时在android中添加 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27877072/

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