次のような 2 つのテキストを表示するためのカスタム レイアウトを持つ ActionBAr の特定のタブ:
カスタム レイアウトは次のように定義されます。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="@color/LightBlue"
android:ellipsize="marquee"
android:maxLines="1"
android:gravity="center"/>
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="@color/Yellow"
android:gravity="center"/>
</LinearLayout>
text1 をより長い文字列に変更すると (この例では、より長い文字列は「TEMPORARYTEMPORARY」です)、次の 2 つのことが起こります。
- タブの幅が拡大され、他のタブが画面の外に押し出されますが、長い文字列が切り取られているため、タブの最大幅があるようです。
- 長い文字列が切り取られても、ellipsize 属性は効果がなく、マーキーもありません (ellipsize "end" を試しても効果がありません)。
タブを同じサイズのままにして、画面の幅を超えないようにしたいと思います。いずれにしても、ellipsize 属性を text1 で有効にしたいと考えています。
更新
epllipsize は、代わりに
android:maxlines="1"
私が使う
android:singleLine="true"
それでも、タブの幅は最大まで広げられ、右端のタブが画面から少しはみ出します。