首先,我的当前标签栏有图像
我想要的是将图像对齐到最左边,同时保持文本居中或将图像移动到文本顶部居中。
以下是我添加文字的方法:
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的例子和答案。
答案 0 :(得分: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);
}
答案 1 :(得分: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的答案所示。
它没有我想要的那么好。我还想改变标签的高度,但没有设法做到这一点。这是最后一张照片的图片: