gpt4 book ai didi

android - 显示 ActionBar 选项卡的两个 fragment

转载 作者:太空狗 更新时间:2023-10-29 14:25:06 30 4
gpt4 key购买 nike

我使用 Eclipse 项目向导创建了一个带有 ActionBar 和选项卡的项目。该向导为每个选项卡创建一个虚拟 fragment ,其中的虚拟文本仅显示选项卡编号。该应用程序可以正常运行。

代码如下所示:

   @Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
// When the given tab is selected, show the tab contents in the container

Fragment fragment = new DummySectionFragment();
Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, tab.getPosition() + 1);
fragment.setArguments(args);
getFragmentManager().beginTransaction()
.replace(R.id.container, fragment)
.commit();
}

/**
* A dummy fragment representing a section of the app, but that simply displays dummy text.
*/
public static class DummySectionFragment extends Fragment {
public DummySectionFragment() {
}

public static final String ARG_SECTION_NUMBER = "section_number";



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
TextView textView = new TextView(getActivity());
textView.setGravity(Gravity.CENTER);
Bundle args = getArguments();
textView.setText(Integer.toString(args.getInt(ARG_SECTION_NUMBER)));
return textView;
}
}

出于我的应用程序的目的,我想在设备处于纵向模式时显示一个 fragment ,在设备处于横向模式时显示两个 fragment 。我知道莎士比亚样本,但在这个样本中,它是一个包含一个或两个 fragment 的 Activity 。

莎士比亚示例使用两种不同的布局。对于纵向模式(在“layout\fragment_layout_support.xml”中):

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<fragment class=".FragmentLayoutSupport$TitlesFragment"
android:id="@+id/titles"
android:layout_width="match_parent" android:layout_height="match_parent" />
</FrameLayout>

对于横向模式(在“layout-land\fragment_layout_support.xml”中):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent" android:layout_height="match_parent">

<fragment class=".FragmentLayoutSupport$TitlesFragment"
android:id="@+id/titles" android:layout_weight="1"
android:layout_width="0px" android:layout_height="match_parent" />

<FrameLayout android:id="@+id/details" android:layout_weight="1"
android:layout_width="0px" android:layout_height="match_parent" />

</LinearLayout>

莎士比亚示例加载布局如下:

public class FragmentLayoutSupport extends FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
//setTheme(SampleList.THEME); //Used for theme switching in samples
super.onCreate(savedInstanceState);

setContentView(R.layout.fragment_layout_support);
}
...

如果我的应用无法在 FragmentActivity 中加载布局,我该如何做同样的事情?

谢谢。

最佳答案

也许您被困住了,因为您不知道 ActionBarActivity继承FragmentActivity

所以简单的替换

extends FragmentActivity

extends ActionBarActivity

和正确的导入(参见 ActionBar API Guide )。然后,您将能够在保留 ActionBar/Tab 的同时实现与莎士比亚示例中相同的行为。只需在您之前的工作 Activity 中扩展 FragmentLayoutSupport 而不是 ActionBarActivity。

关于android - 显示 ActionBar 选项卡的两个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13272575/

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