gpt4 book ai didi

java - 为 Android 应用程序绘制自定义标签栏

转载 作者:行者123 更新时间:2023-12-01 19:05:44 25 4
gpt4 key购买 nike

我需要开发一个底部带有标签栏的应用程序,但是我在使用 Fragments 时遇到很多问题,其中 Android 文档展示了如何使用 TabHost 和 Fragments。
因为没有显示任何关于如何正确处理每个选项卡堆栈的内容。

由于我可以转到 tab1,它打开了 fragment A,然后我想深入并打开 fragment B,并且可以将选项卡切换到选项卡 2,以及切换回来在选项卡 1 中看到相同的 fragment B。

有一些解决方案为每个选项卡创建 FragmentActivity,但对于该管理,您应该使用 TabActivity,该选项已弃用。

所以也许我可以绘制我的选项卡栏并将其放在所有布局上,每次用户按下选项卡栏按钮时我只需启动一个 Activity ?

如果这是可能的,也许有人已经实现了这个,或者可以展示一些如何绘制或使用它的教程?

谢谢。

最佳答案

在 XML down_tabs.xml 中添加此代码

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="0dip"
android:layout_weight="1" />

<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="0" />
</LinearLayout>

并在 Activity 类中添加选项卡规范,

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.down_tabs);
initTabs();
}

private void initTabs() {
// Set Calendar Tab
// getTabWidget().setDividerDrawable(R.drawable.tab_divider);
getTabWidget().setPadding(0, 0, 0, 0);
addTab("", R.drawable.home_tab_drawable, CalendarUIActivity.class);
addTab("", R.drawable.lucky_dates_drawable, LuckyDatesActivity.class);
addTab("", R.drawable.life_stages_drawable, LifeStagesActivity.class);
addTab("", R.drawable.find_items_drawable, FindItemsActivity.class);
addTab("", R.drawable.more_tab_drawable, MoreActivity.class);
}

private void addTab(String labelId, int drawableId, Class<?> targetClass) {
TabHost tabHost = getTabHost();
Intent intent = new Intent(this, targetClass);
TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId);

View tabIndicator = LayoutInflater.from(this).inflate(
R.layout.tab_indicator, getTabWidget(), false);
TextView title = (TextView) tabIndicator.findViewById(R.id.title);
title.setText(labelId);
ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
icon.setImageResource(drawableId);

tabIndicator.setBackgroundResource(R.drawable.tab_backgroud);
// //////////
spec.setIndicator(tabIndicator);
spec.setContent(intent);
tabHost.addTab(spec);

}

希望它能正常工作。

关于java - 为 Android 应用程序绘制自定义标签栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10186986/

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