我是Android新片段的新手,我指的是片段演示示例提供的supprotv4兼容库。
任何人都可以解释为什么Android Support4Demos中的FragmentTabs.java示例中有两个帧布局(@+android:id/realtabcontent , @android:id/tabcontent)
。
FragmentTabs.java调用setContentView(R.layout.fragment_tabs);
方法,以下是相同的布局文件。
fragment_tabs.xml
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:orientation="horizontal" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0" />
<FrameLayout
android:id="@+android:id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
</TabHost>
提前致谢
答案 0 :(得分:4)
在完成示例后,我在FragmentsTabs.java
/**
* This is a helper class that implements a generic mechanism for
* associating fragments with the tabs in a tab host. It relies on a trick.
* Normally a tab host has a simple API for supplying a View or Intent that
* each tab will show. This is not sufficient for switching between
* fragments. So instead we make the content part of the tab host 0dp high
* (it is not shown) and the TabManager supplies its own dummy view to show
* as the tab content. It listens to changes in tabs, and takes care of
* switch to the correct fragment shown in a separate content area whenever
* the selected tab changes.
*/