這東西弄了我兩小時……

本來的源碼在此

效果展示:

其實stackoverflow上已經說得很清楚了,不過有一些細節需要處理好纔不會出包

下面列出我的源碼:

Java Code:
//不顯示本來的title
getActionBar().setDisplayShowTitleEnabled(false);
//容許自訂外觀
getActionBar().setDisplayShowCustomEnabled(true);
//這邊注意,layout與widget那邊是『另外建立』,別傻傻的套回你本來在用的layout id,會有悲劇的
LayoutInflater inflater = LayoutInflater.from(this);
View v = inflater.inflate(R.layout.scrolling_app_title, null);
((TextView)v.findViewById(R.id.bar_title)).setText(你想要的title);
//這句實裝你的自訂外觀
getActionBar().setCustomView(v);


只用於title的layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/bar_title_container"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/bar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:singleLine="true"
        android:scrollHorizontally="true"
        android:focusable="true"
        android:focusableInTouchMode="true" />
</LinearLayout>

其實並不算太難,只是你要新建立一個layout檔而已,不然你ActionBar就會變得一片混沌……

相關文章