[英]Custom theme in Android / Xamarin project - center Title text of Action Bar
我在Android / Xamarin項目中有自定義主題。 我不能做的是:
我嘗試過設置屬性 - >重力到中心,但它不起作用。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="AgrippaTheme"
parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/main_orange_color</item>
<item name="android:titleTextStyle">@style/AgrippaTheme.TitleTextStyle</item>
</style>
<!-- ActionBar TitleTextStyle styles -->
<style name="AgrippaTheme.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/main_black_color</item>
<item name="android:gravity">center_vertical|center_horizontal</item>
</style>
</resources>
您必須通過靜態類中的靜態方法以編程方式執行此操作
public static void SetActionbarText(Activity activity, string text)
{
// Setting custom view enable
activity.ActionBar.SetHomeButtonEnabled(false);
activity.ActionBar.SetIcon(Android.Resource.Color.Transparent);
activity.ActionBar.SetDisplayShowCustomEnabled(true);
activity.ActionBar.Title = "";
LinearLayout linearLayout = new LinearLayout(activity);
linearLayout.SetGravity(GravityFlags.CenterVertical);
LinearLayout.LayoutParams textViewParameters =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
textViewParameters.RightMargin = (int)(40 * activity.Resources.DisplayMetrics.Density);
TextView modelTitle = new TextView(activity);
modelTitle.Text = text;
modelTitle.Gravity = GravityFlags.Center;
linearLayout.AddView(modelTitle,textViewParameters);
ActionBar.LayoutParams actionbarParams =
new ActionBar.LayoutParams(ActionBar.LayoutParams.MatchParent,ActionBar.LayoutParams.MatchParent);
activity.ActionBar.SetCustomView(linearLayout, actionbarParams);
}
請注意,您必須使用文本的右邊距維度。 此邊距應該等於主圖標的寬度(它在那里,但它是不可見的)。
您可以添加正確的圖標,將其添加到Menu.xml上,並在活動的OnCreateOptionsMenu方法中膨脹此xml文件。
您也可以使用菜單和樣式xml文件來完成。 例如,要添加設置按鈕,您只需在菜單文件中添加一個項目,該項目定義圖片中顯示的UI菜單。 有一些預定義的圖標,比如我使用的圖標(ic_menu_preferences),但您可以使用另一個圖標或使用圖像。 那么,讓我們說agrippa_menu.xml:
<?xml version="1.0" encoding="utf-8"?>
[...]
<item
android:id="@+id/menu_item_settings"
android:title="@string/settings"
android:icon="@android:drawable/ic_menu_preferences"
android:showAsAction="ifRoom|withText"
app:showAsAction="ifRoom|withText"/>
[...]
要離開圖標,您可以將此行添加到定義此UI的樣式,或者如果您尚未創建新行,則創建一個新行。 所以,在styles.xml中:
<style name="AgrippaTheme" parent="android:Theme.Holo.Light">
<!--pre v11-->
<item name="logo">@color/transparent</item>
<!--post v11-->
<item name="android:logo">@color/transparent</item>
<!-- Customize your theme here. -->
</style>
最后,在參考將標題放在中間時,我還沒有找到另一種方法,而不是定義一個自定義的xml操作欄,並按照這里所說的方式設置它: 中心在操作欄中使用android中的樣式對齊標題。 :。 如果有人知道怎么做只使用風格將受到歡迎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.