2014-02-21 52 views
5

首先,有我目前的標籤欄的圖像 enter image description hereAndroid操作欄,標籤,風格化的圖標和文本一起

我想要麼排列影像到最左邊,同時保持文本居中或移動文字頂部的圖像居中。

這是我如何添加文本:

var tab = this.ActionBar.NewTab();    
tab.SetText (tabText); 
tab.SetIcon (iconResourceId); 

這裏是我的相關style.xml條目:

<style name="Theme.Discover" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    <item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item> 
    <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item> 
    <item name="android:actionMenuTextColor">#ffffff</item> 
    <item name="android:windowBackground">@drawable/bg</item> 
</style> 

<style name="MyActionBarTabStyle" parent="@android:style/Widget.Holo.Light.ActionBar.TabView"> 
    <item name="android:background">@drawable/action_tab_selector</item> 
</style> 

<!-- ActionBar tabs text styles --> 
<style name="MyActionBarTabText" 
     parent="@android:style/Widget.Holo.ActionBar.TabText"> 
    <item name="android:textColor">#ffffff</item> 
</style> 

我能理解Java代碼太,所以如果你不熟悉Xamarin,我仍然欣賞java例子&的答案。

回答

6

我的解決方案並不完美,但爲了移動文本上方的圖標,這是迄今爲止我可以幫助您的。

TabLayout.axml

<?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="vertical"> 
    <ImageView 
     android:id="@+id/tab_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@android:color/transparent" /> 
    <TextView 
     android:id="@+id/tab_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

MainActivity.cs

void AddTabToActionBar(int labelResourceId, int iconResourceId) 
     { 
      var tab = this.ActionBar.NewTab(); 
      tab.SetCustomView(Resource.Layout.Tablayout); 
      tab.CustomView.FindViewById<ImageView>(Resource.Id.tabImage).SetImageResource(iconResourceId); 
      tab.CustomView.FindViewById<TextView>(Resource.Id.tabText).SetText(labelResourceId); 
      tab.TabSelected += TabOnTabSelected; 
      ActionBar.AddTab(tab); 

     } 
+0

這真的很有幫助。我會嘗試以我想要的方式造型。 – erkinyldz

+0

我似乎無法編輯tabbars的高度或寬度。我嘗試給線性佈局layout_height財產作爲wrap_content和100dp和150dp沒有任何改變。任何想法? – erkinyldz

+0

我還沒有嘗試過,但它看起來像你必須改變操作欄的樣式:http://stackoverflow.com/a/10280063/3183686 –

3

我設法成功地做到這一點。這裏是我使用的xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:p1="http://schemas.android.com/apk/res/android" 
    p1:minWidth="15px" 
    p1:minHeight="15px" 
    p1:layout_width="wrap_content" 
    p1:layout_height="wrap_content" 
    p1:id="@+id/tabRelative" 
    p1:gravity="center"> 
    <ImageView 
     p1:src="@drawable/discover_icon_nightlife" 
     p1:layout_width="20dp" 
     p1:layout_height="20dp" 
     p1:id="@+id/tabImage" 
     p1:layout_centerHorizontal="true" 
     p1:scaleType="centerInside" 
     p1:layout_marginTop="4dp" 
     p1:paddingTop="1dp" /> 
    <TextView 
     p1:text="Menu" 
     p1:layout_width="wrap_content" 
     p1:layout_height="wrap_content" 
     p1:id="@+id/tabText" 
     p1:layout_centerHorizontal="true" 
     p1:layout_below="@+id/tabImage" 
     p1:paddingTop="2dp" /> 
</RelativeLayout> 

而且我將它設置爲自定義視圖給我的ab像goober_nuts答案建議。

它沒有我想要的那麼好。我也想改變標籤的高度,但沒有設法做到這一點。這裏是最後一看的圖片:

Last Look