2

现在我的活动标题显示在左侧< Title,然后另一个菜单项显示在右侧。我想将我的标题居中并省略<. 我怎么做?我正在使用我称之为使用的典型菜单

public boolean onOptionsItemSelected(MenuItem item) 

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.yesterday, menu);
    return true;
}

编辑:

我设法让它显示使用

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    setContentView(R.layout.activity_yesterday);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,   R.layout.yesterday_title_bar);

yesterday_title_barrelativeLayout在哪里

但它显示了视图高度的一半。所以我创建了以下样式。但是当我在清单中应用样式时。清单说它找不到资源。

<style name="CustomWindowTitleBackground">
        <item name="android:background">#323331</item>
    </style>

    <style name="CustomTheme" parent="android:Theme">
        <item name="android:windowTitleSize">65dip</item>
        <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
    </style>

显现:

<activity
        android:name="com.company.YesterdayActivity"
        android:theme="@android:style/CustomTheme" >
    </activity>
4

3 回答 3

2

我还使用了actionbar sherlock,并通过这种方法设置了标题位置。您可以设置自定义文本视图并将其重心设置为中心。使用下面的方法告诉我。

    private void setHeader(){
    LayoutInflater linflater = (LayoutInflater)MainAccountActivity.context.getSystemService(MainAccountActivity.context.LAYOUT_INFLATER_SERVICE);
    View GalleryTitleView = linflater.inflate(R.layout.layout_header, null);

    galleryTitleTv = (TextView) GalleryTitleView
            .findViewById(R.id.GalleryTitleTv);
    galleryTitleTv.setText(ITWAppUIConstants.TAB_AGENDA);

    ActionBar.LayoutParams lp = new ActionBar.LayoutParams(
            ActionBar.LayoutParams.FILL_PARENT,
            ActionBar.LayoutParams.WRAP_CONTENT);
    lp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL;
    GalleryTitleView.setLayoutParams(lp);
    getSupportActionBar().setCustomView(GalleryTitleView);
  }

这是我使用的布局:

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:gravity="center"
android:orientation="vertical" >

<TextView
    android:id="@+id/GalleryTitleTv"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:paddingLeft="10dip"
    android:textColor="@color/white"
    android:textSize="20dip"
    android:textStyle="bold" />

于 2013-07-12T05:14:10.617 回答
0

只需在活动中为您的操作栏使用自定义视图...

ActionBar actionBar = getSupportActionBar();
actionBar.setCustomView(R.layout.actionbar_layout);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setDisplayHomeAsUpEnabled(false); // Remove '<' next to home icon.

视图可能是这样的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textViewActionBarTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Your Title" />

</LinearLayout>
于 2013-07-12T01:57:10.620 回答
0

主题不是 android: 风格,而是风格。将您的清单更改为此..

    <activity
        android:name="com.company.YesterdayActivity"
        android:theme="@style/CustomTheme" >
    </activity>

编辑:也许这是你的父主题。你之前的主题是什么?尝试像这样更改您的父主题:

    <style name="CustomWindowTitleBackground">
        <item name="android:background">#323331</item>
    </style>

    <style name="CustomTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:windowTitleSize">65dip</item>
        <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
    </style>
于 2013-07-12T01:43:34.347 回答