我正在尝试使用支持库为我的应用程序创建一个“选项卡”w/o,但是我甚至没有在任何地方找到一个简单的工作示例/教程。
因为我的整个应用程序都使用android.app.fragment,所以不能将所有现有的fragments更改为android.support.v4.app.Fragment。
使用支持库在片段中创建选项卡是小菜一碟,但我想知道我们是否可以创建一个w/o android.support.v4.app.Fragment。
发布于 2015-05-07 15:51:57
这是可以实现的,这很容易,遵循我的步骤:
1.将FragmentTabHost的正式源代码复制到您的项目中,并更改以下3类参考资料:android.support.v4.app.Fragment to android.app.Fragment android.support.v4.app.FragmentManager to android.app.FragmentManager android.support.v4.app.FragmentTransaction to android.app.FragmentTransaction
2.在项目中使用FragmentTabHost的修改版本,忘记android.support.v4库。我的编辑版本:FragmentTabHost
示例代码:(显示第一个选项卡,延迟5秒后,您将看到第二个选项卡,我在我的Android上成功运行!)
MainActivity.java
public class MainActivity extends Activity {
FragmentTabHost mTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTabHost = (FragmentTabHost) findViewById(R.id.tabhost);
mTabHost.setup(this, getFragmentManager(), R.id.container);
// Add each tab
mTabHost.addTab(mTabHost.newTabSpec("first").setIndicator("first"), BlankFragment1.class, null);
mTabHost.addTab(mTabHost.newTabSpec("second").setIndicator("second"), BlankFragment2.class, null);
mTabHost.postDelayed(new Runnable() {
@Override
public void run() {
mTabHost.setCurrentTabByTag("second");
}
}, 5000);
}
}activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<com.example.bill.myapplication.FragmentTabHost
android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/tabhost">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TabWidget
android:id="@android:id/tabs"
android:orientation="horizontal"
android:layout_width="0dp"
android:layout_height="0dp"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"/>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
</com.example.bill.myapplication.FragmentTabHost>
</RelativeLayout>发布于 2015-05-07 15:27:35
将片段放入布局XML中的选项卡内容中,并将它们添加到onCreate中的onCreate中。
https://stackoverflow.com/questions/29791329
复制相似问题