TextViewをellipsizeに設定しましたが、テキストを挿入しても変更されません。何か案は?
<TextView
Android:id="@+id/LegalsView"
Android:ellipsize="end"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textAppearance="?android:attr/textAppearanceMedium" />
試してください:
Android:singleLine="true"
Android:layout_width="wrap_content"
TextView
は、必要に応じて(画面からの実行を含む)拡大することができます。楕円形にするためには、市民の推奨値として幅を設定する必要があります。できれば絶対値ではなくAndroid:layout_width="fill_parent"
を使用します。
追加のヒント:TextView
のmaxLinesを(おそらく1に)設定し、実際の省略記号( "...")を表示するには、おそらく次の設定も行う必要があります。
Android:scrollHorizontally="true"
Androidはオブジェクトの位置を正しく計算できます。いくつかの可能な組み合わせがあり、レイアウトの残りの部分が同じ行に依存しているため、設定を一致させる必要があります。
これは機能する組み合わせです。
Android:layout_width="0dip" // dynamic width
Android:layout_weight="1" // less weight, other objects still "0"
Android:ellipsize="end" // ... into end of text (right)
Android:singleLine="true" // one line, deprecated, but necessary for some ambients
Android:maxLines="1" // one line, new mode
要約すると、動的レイアウトを使用する場合、または固定サイズのみを使用する場合は、重みを示し、1行のみであることを示し、「...」の表示方法を構成します。
私がこれを機能させることができた唯一の方法は、width="1dp"
、weight="1"
、ellipsize="end"
、maxLines="1"
およびscrollHorizontally="true"
を設定することです。最初の2つはwidth="match_parent"
と同じ種類の効果があり、ウィジェットがディスプレイの端から拡張されていません。残りの3つの設定はすべて、テキストを楕円形にするために行う必要がありました。
追加したときにアプリがmaxlinesとellipsizeを無視し始めました
Android:textIsSelectable="true"
これらのオプションは互換性がないようです。
複数行の省略記号を機能させようとすると、残念ながらうまく機能しません。これは、Androidプラットフォームの既知のバグであり、私の知る限りでは修正されていません。TextView
では、2行の楕円化が得られます(これは、
Android:maxLines="2"
this リンクを参照してください。
別の回答で述べたように絶対的な幅があっても、最大で2行の省略記号しか表示されません。 (しかし、前述のように、単一行の省略記号も実現可能です)。したがって、たとえば、テキストが8行のTextViewを埋める可能性がありますが、省略記号をオンにすると次のようになります。
+ ------------------------------------------------- -+ | | |これは、| |を埋めるための私のクールなテキストです。テキストビュー全体ですが、残念なことに、tのために... | | | | | | | | | | | | | | | | | | | | | | | | | | | + ------------------------------------------- -------- +
TextViewのサイズがわかっている場合は、利用可能なカスタムコンポーネントを使用できます here (残念ながら、最初にホストしていたGoogleコードプロジェクトが表示されなくなったため、このリンクを見つけることができます)。
TextView
に特定の幅を定義していない場合、テキストが親ビューの幅に達すると、最初にテキストが楕円になります。
このソリューションは機能します:
Android:ellipsize="end"
Android:singleLine="false"
Android:lines="3"
Android:maxLines="3"
幅も "wrap_content"に設定できます
あなたはlayout_widthをwrap_contentではなく特定のdpに変更します
そして
使用する
Android:singleLine = "true"
Android:ellipsize = "end"
コード:
Android:layout_width="50dp"
Android:layout_height="wrap_content"
Android:text="check this text"
Android:id="@+id/textView"
Android:singleLine="true"
Android:ellipsize="end"/>
実行時のみ機能します。次のようにします。
textView.setEllipsize(TruncateAt.END);
textView.setLines(1);
textView.setHorizontallyScrolling(true);
textView.setText("Long text goes here");
同様にmaxLinesを設定することもできます:
<TextView
Android:id="@+id/txt_title"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:maxLines="3"
Android:ellipsize="end"
Android:textStyle="bold"/>
テキストがmaxLinesセットを超えると、楕円が表示されます。