[英]center align Android Action bar
我在為Android項目對齊徽標和文本時遇到麻煩。 這是我的styles.xml:
<resources
xmlns:android="http://schemas.android.com/apk/res/android"
>
<!-- Actionbar style -->
<style name="Widget.project.ActionBar" parent="Widget.Sherlock.Light.ActionBar">
<item name="titleTextStyle">@style/Widget.Elmwood.TitleTextStyle</item>
<item name="android:titleTextStyle">@style/Widget.Elmwood.TitleTextStyle</item>
<item name="android:background">@color/project_blue</item>
<item name="background">@color/project_blue</item>
</style>
<style name="Widget.Elmwood.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="@style/Theme.Sherlock.Light.DarkActionBar">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="actionBarStyle">@style/Widget.project.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.project.ActionBar</item>
</style>
<!-- Buttons -->
<style name="BlueBackgroundButtonLargeWhiteTextButton" parent="@android:style/Widget.Button">
<item name="android:background">@color/project_blue</item>
<item name="android:textColor">@color/white</item>
<item name="android:textSize">@dimen/title_text</item>
<item name="android:padding">@dimen/title_text_padding</item>
</style>
<style name="InnerCircleDetailButton" parent="@android:style/Widget.Button">
<item name="android:background">@drawable/inner_circle_button</item>
<item name="android:textSize">14dp</item>
</style>
<style name="InnerCircleContinueButton" parent="@android:style/Widget.Button">
<item name="android:background">@drawable/black_grey_button_background</item>
<item name="android:textColor">@color/white</item>
<item name="android:textSize">@dimen/normal_text</item>
<item name="android:padding">5dp</item>
</style>
<style name="HomepageButton" parent="@android:style/Widget.Button">
<item name="android:textSize">@dimen/title_text</item>
<item name="android:layout_centerInParent">true</item>
<item name="android:background">@null</item>
</style>
<!-- end Buttons -->
<!-- ListViews -->
<style name="projectBlueListView" parent="@android:style/Widget.ListView">
<item name="android:cacheColorHint">@android:color/transparent</item>
<item name="android:background">@color/project_blue_transparent</item>
<item name="android:divider">@null</item>
<item name="android:dividerHeight">0px</item>
</style>
<style name="StandardListView" parent="@android:style/Widget.ListView">
<item name="android:cacheColorHint">@android:color/transparent</item>
<item name="android:divider">@null</item>
<item name="android:dividerHeight">0px</item>
<item name="android:listSelector">@android:color/transparent</item>
</style>
<!-- end ListViews -->
<!-- TextViews -->
<style name="TitleTextView" parent="@android:style/Widget.TextView">
<item name="android:textSize">@dimen/title_text</item>
</style>
<style name="TitleTextViewWhite" parent="@style/TitleTextView">
<item name="android:textColor">@color/white</item>
</style>
<style name="NormalTextView" parent="@android:style/Widget.TextView">
<item name="android:textSize">@dimen/normal_text</item>
</style>
<style name="NormalTextViewBold" parent="@style/NormalTextView">
<item name="android:textStyle">bold</item>
</style>
<style name="NormalTextViewWhite" parent="@style/NormalTextView">
<item name="android:textColor">@color/white</item>
</style>
<style name="NormalTextViewGrey" parent="@style/NormalTextView">
<item name="android:textColor">@color/project_grey</item>
</style>
<style name="projectListItemTitleTextView" parent="@style/NormalTextView">
<item name="android:textColor">@color/white</item>
<item name="android:textSize">16dp</item>
</style>
<style name="projectListItemNumberTextView" parent="@style/NormalTextView">
<item name="android:textColor">@color/project_grey</item>
<item name="android:textSize">30dp</item>
</style>
<!-- end TextViews -->
</resources>
我可以做一些修改; 例如,如果我刪除
<item name="android:background">@color/project_blue</item>
<item name="background">@color/project_blue</item>
我得到一個純白色的操作欄,但是我所做的任何事情都不允許我更改文本或徽標的對齊方式。 兩者都需要居中對齊。
我已經找到了解決該問題的多種解決方案,並且所有人都說相同的話; 我需要做一個自定義布局,以使我已經知道。 我對任何XML文件所做的任何更改都不會改變對齊方式。
有人可以指出我正確的方向嗎?
編輯:
我已經嘗試添加自定義操作欄,但是沒有用。 雖然我可以使它出現,但它根本不會響應中心對齊。
這是在我的onCreate()中:
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayUseLogoEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setDisplayShowCustomEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(false);
getSupportActionBar().setDisplayOptions(getSupportActionBar().DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(getLayoutInflater().inflate(R.layout.custom_layout, null));
這是我的custom_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ActionBarWrapper"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="horizontal"
>
<ImageButton
android:id="@+id/slideMenuButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
android:layout_alignParentLeft="true" />
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/app_icon"
android:layout_centerVertical="true"
android:layout_centerInParent="true" />
</RelativeLayout>
我可以更改圖標和內容,因此我知道它至少可以響應更改,但是嘗試使其對齊不會產生任何結果。
AFAIK無法使用標准操作欄將徽標和標題水平居中。 你必須:
將自定義視圖添加到模仿徽標+標題的標准操作欄中。
ActionBar actionBar = getActionBar(); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setCustomView(R.layout.your_layout_with_logo_and_title);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.