テキストがTextView
よりも長い場合に、末尾に3つのドットを表示するために、TextView
を一本並べたいです。理由はわかりませんが、わかりません。
私はすでに似たようなStackOverflowの質問に頭を抱えていましたが、解決策がありませんでした。たぶん誰かがいくつかの有用なヒントを持っています。
<LinearLayout
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:orientation="vertical">
<TextView
Android:textStyle="bold"
Android:text="Full Name"
Android:layout_height="wrap_content"
Android:textSize="16sp"
Android:layout_width="wrap_content"
Android:id="@+id/lName"
Android:layout_gravity="center_vertical"
Android:maxLines="1"
Android:ellipsize="end"/>
</LinearLayout>
上記のLinearLayout
は、他の2つのLinearLayouts
にネストされています。たぶん、これは知っておくことが重要です。すでに属性「singleLine
」も試しましたが、これは非推奨であり、とにかく機能しないと言う人もいます。
スタイルファイルに次のスタイルを追加します(通常はstyles.xml
):
<style name="autoscroll">
<item name="Android:singleLine">true</item>
<item name="Android:ellipsize">Marquee</item>
<item name="Android:marqueeRepeatLimit">Marquee_forever</item>
<item name="Android:focusable">true</item>
<item name="Android:focusableInTouchMode">true</item>
<item name="Android:scrollHorizontally">true</item>
</style>
次に、スタイル@style/autoscroll
をTextView
に:
<TextView Android:id="@+id/lName"
style="@style/autoscroll" />
この方法が必要な場合は、自動スクロール機能を簡単に再利用できます。
TextViewのxmlにこれを追加します。
Android:maxWidth="200dp"
Android:maxLines="1"
なので
Android:singleLine="true"
非推奨です。
Android:id="@+id/lName" Android:layout_width="150dp"
Android:layout_height="wrap_content"
Android:ellipsize="end"
Android:singleLine="true"
Android:text="Avinljhakjhsajkhakjshda"
Android:textSize="16sp"
singleLine="true"
が、この属性は非推奨になりました。ellipsizeおよびscrollHorizontally="true"
代わりに。
「Android:ems」属性を追加しない限り、これは機能しません
Android:ellipsize="end"
Android:singleLine="true"
Android:ems="8"