複数のテキスト要素を 1 行に配置しようとしていますが、それらの要素の 1 つだけが「アクティブ」と見なされます。したがって、次の2つのケースがあります。
- すべてのテキスト要素の幅の合計が、親の幅よりも小さくなっています。すべてのテキスト要素をそのまま表示するだけです。
- 合計幅が親の幅を超えています。クリッピングなしで「アクティブな」要素のテキスト全体を表示し、楕円を使用して他のすべてのテキスト要素を縮小します。
要素が 1 つしかない場合、常に適合することが保証されていると仮定しましょう。
文字列のリストは動的です。どの要素もいつでも「アクティブ」に設定できます。
これまでのところ、次のとおりです。単一行のテーブルレイアウト、すべての「非アクティブ」列は縮小可能に設定され、テキスト要素は最後に楕円サイズに設定されています。「アクティブ」なものは setEllipsize(null) で、列は縮小できません。
問題は、縮小可能なすべての列が一定のパーセンテージまで縮小されますが、それ以上には縮小されないことです。「アクティブな」テキストを表示するのに十分でない場合は、テーブル全体が親の幅に合わせて切り取られます。
したがって、問題は、縮小できる列の量を制御する方法が欠けているかどうかです。
PS すべてのレイアウトは、レイアウト xml を使用せずに、コードによって生成されます。