我正在尝试使用与 Instagram应用类似的外观和感觉来实现五个标签。现在禁用TabHost和TabActivity的最佳做法是什么?
我希望在屏幕顶部(操作栏下方)有五个选项卡,每个选项卡都有一个表示该选项卡内容的drawable。
由于将始终显示选项卡,因此我希望将它们放在一个活动中。但是,每个选项卡的内容将取决于哪个选项卡已被按下。因此,我希望在我加载片段的选项卡下面的同一个Activity中有一个视图,一次一个,具体取决于按下哪个。
总结一下: 我想要一个活动,顶部有标签,下面有一个视图,我一次只加载一个五个不同的片段。
请帮助我在不使用弃用类的情况下实现这一目标:)
答案 0 :(得分:1)
您可以使用这两个新类来创建标签SlidingTabLayout,SlidingTabStrip,您必须将带有一些片段的ViewPager传递给此类,以便在每个标签页上使用setCustomTabView
自定义视图。你可以找到谷歌的例子。
编辑:
对于自定义布局(我的包含图像和文本)设置您的标签,如下所示:
slideTab = (SlidingTabLayout) findViewById(R.id.getbook_sliding_tabs);
slideTab.setDistributeEvenly(true);
slideTab.setCustomTabView(R.layout.cat_tab_layout, R.id.main_tab_title);
cat_tab_layout
:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="6dip"
android:background="@drawable/cat_tab_background">
<ImageView
android:id="@+id/main_tab_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cat_all_book_icon"
android:layout_centerHorizontal="true"/>
<TextView
android:id="@+id/main_tab_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="tab1"
android:textColor="@color/medium_gray"
android:layout_below="@id/main_tab_image"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
在populateTabStrip()
表单SlidingTabLayout
类中进行一些更改:
adapter = (GetBookFragmentPagesAdapter)mViewPager.getAdapter();// get your view pager adapter
for (int i = 0; i < adapter.getCount(); i++) {
....
if (mTabViewLayoutId != 0) {
// If there is a custom tab view layout id set, try and inflate it
tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, false);
tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
ImageView tabImage = (ImageView)tabView.findViewById(R.id.main_tab_image);
tabImage.setImageResource(adapter.getImages(i)); // getImage() return image id for each tab
}
...
然后你会得到这样的东西:
答案 1 :(得分:0)
我正在尝试使用与Instagram应用程序类似的外观和感觉来实现五个选项卡
由于不是每个人都使用Instagram,将来,请发布你想要的截图,并从你的问题链接到它。
我希望有一个活动,顶部有标签,下面有一个视图,我一次加载五个不同的碎片中的一个。
Use FragmentTabHost
。或者,使用ViewPager
和标签式指标(例如,TabPageIndicator
与the ViewPagerIndicator library中的IconPagerAdapter
一起使用。