我无法将我的徽标和文字对齐到一个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>
我可以更改图标和内容,因此我知道它至少会对更改做出响应,但尝试对齐它不会产生任何结果。
答案 0 :(得分:1)
AFAIK无法使用标准操作栏将徽标和标题水平居中。你必须:
将自定义视图添加到模仿徽标+标题的标准操作栏。
ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setCustomView(R.layout.your_layout_with_logo_and_title);