gpt4 book ai didi

java - 更改方向时操作栏选项卡中的错误

转载 作者:行者123 更新时间:2023-11-29 21:29:52 26 4
gpt4 key购买 nike

所以我写了这个简单的标签导航。它有两个选项卡,分别称为“fragment 1”和“fragment 2”。如果您点击其中任何一个,它应该在内容区域中显示相应的文本“Fragment 1”或“Fragment 2”。我的代码一开始工作正常。

但是,当我将设备切换为横向时,文本会乱七八糟。它在同一位置显示具有 1 和 2 组合的 Fragment。我认为这两个文本是同时显示的。出现此错误后,文本仍然保持我尝试更改选项卡的方式。当我从横向变为纵向时也会发生这种情况。这是什么原因造成的?

主 Activity .java

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar ab = getActionBar();
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

Tab tab = ab.newTab().setText(R.string.frag1).setTabListener(new MyTabListener(this, Fragment1.class.getName()));
ab.addTab(tab);

tab = ab.newTab().setText(R.string.frag2).setTabListener(new MyTabListener(this, Fragment2.class.getName()));
ab.addTab(tab);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

private class MyTabListener implements ActionBar.TabListener
{
private Fragment mFragment;
private final Activity mActivity;
private final String mFragName;

public MyTabListener(Activity activity, String fragName) {
mActivity = activity;
mFragName = fragName;
}

@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub

}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
mFragment = Fragment.instantiate(mActivity, mFragName);
ft.add(android.R.id.content, mFragment);

}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(mFragment);
mFragment = null;

}

}

fragment 1.java

public class Fragment1 extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance)
{
return inflater.inflate(R.layout.frag1, container, false);
}
}

fragment 2.java

public class Fragment2 extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance)
{
return inflater.inflate(R.layout.frag2, container, false);
}
}

最佳答案

您需要在 onTabSelected() 方法中使用 replace() 而不是 add() 方法。

关于java - 更改方向时操作栏选项卡中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19739306/

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