簡體   English   中英

居中對齊Android操作欄

[英]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無法使用標准操作欄將徽標和標題水平居中。 你必須:

  1. 使用完全自定義的ActionBar或
  2. 將自定義視圖添加到模仿徽標+標題的標准操作欄中。

    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM