sto usando il ActionBar
e voglio impostare una consuetudine View
nelle schede di navigazione.Come impostare una visualizzazione personalizzata in schede di navigazione del ActionBar e rendere le schede si adattano alla sua altezza?
L'altezza delle schede sembrano essere fisso, e mia abitudine View
è più grande, quindi non va bene.
cerco di personalizzare lo stile come mostrato di seguito, ma non rende le linguette in alto ...
Come posso avere l'altezza delle schede adattarsi al mio costume View
dimensioni?
(So che potrei usare Tab
s' setIcon
e setTitle
nel mio caso, ma ho ancora voglia di utilizzare un costume View
)
styles.xml
<resources>
<style name="AppBaseTheme" parent="android:Theme.Holo">
</style>
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:actionBarTabStyle">@style/MyTabStyle</item>
</style>
<style name="MyTabStyle" parent="@android:Widget.ActionBar.TabView">
<item name="android:height">85dp</item>
</style>
</resources>
custom_tab.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal" >
<ImageView
android:id="@+id/icon"
android:layout_width="60dp"
android:layout_height="60dp"
android:scaleType="centerInside" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:maxLines="1" />
</LinearLayout>
MainActivity.java
public class MainActivity extends FragmentActivity implements
ActionBar.TabListener {
SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Set up the action bar.
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Create the adapter that will return a fragment for each of the three
// primary sections of the app.
mSectionsPagerAdapter = new SectionsPagerAdapter(
getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
// When swiping between different sections, select the corresponding
// tab. We can also use ActionBar.Tab#select() to do this if we have
// a reference to the Tab.
mViewPager
.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});
// For each of the sections in the app, add a tab to the action bar.
for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
// Create a tab with text corresponding to the page title defined by
// the adapter. Also specify this Activity object, which implements
// the TabListener interface, as the callback (listener) for when
// this tab is selected.
LinearLayout view = (LinearLayout) getLayoutInflater().inflate(R.layout.custom_tab, null);
ImageView icon = (ImageView) view.findViewById(R.id.icon);
icon.setImageResource(R.drawable.about);
TextView title = (TextView) view.findViewById(R.id.title);
title.setText("About");
actionBar.addTab(actionBar.newTab()
//.setText(mSectionsPagerAdapter.getPageTitle(i))
.setCustomView(view)
.setTabListener(this));
}
}
/*****/
}