Използвам библиотеките за поддръжка на Android за създаванеTabBar.I съм в състояние да създадете TabBar успешно с моите собствени модификации, използвайки стилове, но аз не знам защо е там ляво padding в първия раздел и вдясно подложка във втория tab.I не съм в състояние да премахнете тези от първостепенни стилове.
оформление на файла код:
<?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="match_parent"
android:orientation="horizontal"
android:baselineAligned="false" >
</LinearLayout>
Java Код на файла:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.all_contacts);
final ActionBar actionBar = getActionBar();
// Specify that tabs should be displayed in the action bar.
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Create a tab listener that is called when the user changes tabs.
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
};
// Add 3 tabs, specifying the tab"s text and TabListener
for (int i = 0; i < 2; i++) {
actionBar.addTab(actionBar.newTab().setText("Tab " + (i + 1))
.setTabListener(tabListener));
}}
Моят код за стил е:
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:actionBarTabStyle">@style/MyActionBar.Tab</item>
<item name="android:actionBarTabTextStyle">@style/My.TabText.Style</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
<item name="android:background">@color/white</item>
<item name="android:padding">0dp</item>
</style>
<style name="MyActionBar.Tab" parent="@android:style/Widget.Holo.Light.ActionBar.TabBar">
<item name="android:background">@drawable/tab_bar_background</item>
<item name="android:padding">0dp</item>
<item name="android:gravity">center</item>
</style>
<style name="My.TabText.Style" parent="@android:style/Widget.Holo.Light.ActionBar.TabText">
<item name="android:textAppearance">@android:style/TextAppearance.Medium</item>
<item name="android:textSize">15sp</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@color/black</item>
<item name="android:textAllCaps">true</item>
<!-- <item name="android:ellipsize">none</item> -->
<item name="android:maxLines">1</item>
</style>
Прикачих екранната снимка по-долу за справка.
Отговори:
0 за отговор № 1Накрая намерих отговора на собствения си въпрос.Не мога да отстраня подложката, но аз прилагам един и същ цвят на фона на пространството в ляво и дясно.Използвах следния код:
<item name="android:actionBarTabBarStyle">@style/MyActionBar.TabBar</item>
<style name="MyActionBar.TabBar" parent="android:style/Widget.Holo.Light.ActionBar.TabBar">
<item name="android:background">@color/gray_background</item>
</style>