Название центра деятельности в панели действий Android
В настоящий момент заголовок моей активности отображается слева как < 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;
}
EDIT:
Мне удалось показать его с помощью
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_yesterday);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.yesterday_title_bar);
где yesterday_title_bar
- относительный Layout
Но он показывает половину высоты просмотров. Поэтому я создал следующий стиль. Но когда я применяю стиль в манифесте. В манифесте говорится, что он не может найти ресурс.
<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>
Ответы
Ответ 1
Я также использовал 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" />
Ответ 2
Тема не в стиле андроида: стиль, а стиль. Измените свой манифест на это.
<activity
android:name="com.company.YesterdayActivity"
android:theme="@style/CustomTheme" >
</activity>
EDIT:
Возможно, это ваша родительская тема. Какова была ваша тема раньше? Попробуйте изменить родительскую тему следующим образом:
<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>
Ответ 3
Просто используйте настраиваемое представление для своей панели действий в своей деятельности...
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>