我开发了一个Android应用程序,它有4个TabHost,它们都是碎片。
我知道如何在MainActivity中自定义ActionBar
。
但问题是如何根据不同ActionBar
s中的4个不同TabHost定制我的Fragment
?
这是我的tabHost代码 -
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
/** Creating ANDROID Tab */
Tab tab = actionBar.newTab()
//.setText("Android")
.setTabListener(new CustomTabListener<PlayFragment01>(this, "play",
PlayFragment01.class))
.setIcon(R.drawable.playtabhosticon);
actionBar.addTab(tab);
/** Creating APPLE Tab */
Tab tab1 = actionBar.newTab()
//.setText("Apple")
.setTabListener(new CustomTabListener<VenueFragment01>(this, "venu",
VenueFragment01.class))
.setIcon(R.drawable.venutabhosticon);
actionBar.addTab(tab1);
/** Creating APPLE Tab */
Tab tab3 = actionBar.newTab()
//.setText("Apple")
.setTabListener(new CustomTabListener<SocialFragment01>(this, "social", SocialFragment01.class))
.setIcon(R.drawable.socialtabhosticon);
actionBar.addTab(tab3);
/** Creating APPLE Tab */
Tab tab4 = actionBar.newTab()
//.setText("Apple")
.setTabListener(new CustomTabListener<ActivityFragment01>(this, "activity",
ActivityFragment01.class))
.setIcon(R.drawable.actionbartabhosticon);
actionBar.addTab(tab4);
}
}
这是我的第一个片段代码 -
package in.wptrafficanalyzer.actionbarnavtab;
/** This is a listfragment class */
public class PlayFragment01 extends Fragment {
/** An array of items to display in ArrayList */
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
/** Creating array adapter to set data in listview */
View rootView = inflater.inflate(R.layout.fragment_play, container, false);
//new DownloadJSON().execute();
ActionBar actionBar = getActivity().getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
getActivity().getActionBar().setBackgroundDrawable(
new ColorDrawable(Color.parseColor("#0077d1")));
ActionBar mActionBar = getActivity().getActionBar();
getActivity().getActionBar().setIcon(
new ColorDrawable(getResources().getColor(android.R.color.transparent)));
mActionBar.setDisplayShowHomeEnabled(true);
mActionBar.setDisplayShowTitleEnabled(false);
LayoutInflater mInflater = LayoutInflater.from(this);
View mCustomView = mInflater.inflate(R.layout.custom_actionbar2, null);
mActionBar.setCustomView(mCustomView);
mActionBar.setDisplayShowCustomEnabled(true);
return rootView;
}
}
答案 0 :(得分:0)
您提出的问题不是很明确,但您可以使用getActivity().getActionBar()
从片段中获取ActionBar实例。
答案 1 :(得分:0)
ActionBar.setNavigationMode()
和TabHost
现已弃用。
API-21中引入的新ToolBar
功能更强大。
但是既然你要求一个解决方案,这里有一个来自Google SlidingTabLayout的简单解决方案:
这就像PagerTabStrip
,您可以轻松自定义并且工作得很好。
当然,它适用于ViewPager
和Fragments
。
答案 2 :(得分:0)
在我看来,你应该阅读这篇文章,这样你就可以了解创建片段的基本想法。
http://developer.android.com/guide/components/fragments.html
试试这个示例代码..此示例代码包含3个选项卡,首先尝试理解此代码,然后您可以使用4个选项卡制作自己的应用程序
http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/
同时尝试修改您的问题,目前还不清楚,发布错误也不错