[英]Creating Custom Action bars for each activity
我需要为我的Android应用程序中的每个屏幕创建自定义标题栏。 例如,在GMail,Yahoo Mail android应用程序中,您是否注意到其标题栏因活动而异? 这就是我所需要的。
不幸的是,我经历了许多教程,它们是用一个自定义标题栏替换整个应用程序的标题栏。
以下是我尝试过的
Cuatom_title.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/bileeta_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="@string/_title"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#579bef"
android:textSize="50sp" />
<EditText
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_gravity="right"
android:layout_marginRight="30dp"
android:ems="10"
android:hint="@string/search_hint"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
MainActivity.java
//Setting custom title bar
this.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_home);
//Set the custom title bar
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title);
但这只是产生错误。
如何为每个活动创建自定义标题栏?
在你的onCreate()
ActionBar actionBar = getActionBar(); //for higher version
actionBar.setDisplayShowCustomEnabled(true);
View customView=getLayoutInflater().inflate(R.layout.yourlayout, null);
actionBar.setCustomView(customView);
要么
ActionBar actionBar = getSupportActionBar(); //to support lower version too
actionBar.setDisplayShowCustomEnabled(true);
View customView=getLayoutInflater().inflate(R.layout.yourlayout, null);
actionBar.setCustomView(customView);
在清单文件中,在声明活动时,可以添加以下行android:label="@string/your_title_string"
示例:
<activity
android:name=".MyActivity"
android:label="@string/your_title_string" >
</activity>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.