ActionBar
kullanıyorum ve gezinme sekmelerinde özel bir View
ayarlamak istiyorum. ActionBar gezinme sekmelerinde özel bir Görünüm nasıl ayarlanır ve sekmeler yüksekliğe uyarlanır?
sekmelerin yüksekliği
sabit gibi görünüyor ve benim özelView
büyüktür, bu yüzden uymuyor.
Ben aşağıda gösterildiği gibi stilini özelleştirmek çalışıyorum, ancak sekmeler yüksek yapmaz ...
nasıl sekmelerin yüksekliği benim özel View
boyutuna adapte olabilir?
(Ben benim durumumda Tab
'ın setIcon
ve setTitle
kullanabilirsiniz biliyorum, ama yine de özel bir View
kullanmak istiyorum)
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));
}
}
/*****/
}