0

複数のテキスト要素を 1 行に配置しようとしていますが、それらの要素の 1 つだけが「アクティブ」と見なされます。したがって、次の2つのケースがあります。

  • すべてのテキスト要素の幅の合計が、親の幅よりも小さくなっています。すべてのテキスト要素をそのまま表示するだけです。
  • 合計幅が親の幅を超えています。クリッピングなしで「アクティブな」要素のテキスト全体を表示し、楕円を使用して他のすべてのテキスト要素を縮小します。

要素が 1 つしかない場合、常に適合することが保証されていると仮定しましょう。

文字列のリストは動的です。どの要素もいつでも「アクティブ」に設定できます。

これまでのところ、次のとおりです。単一行のテーブルレイアウト、すべての「非アクティブ」列は縮小可能に設定され、テキスト要素は最後に楕円サイズに設定されています。「アクティブ」なものは setEllipsize(null) で、列は縮小できません。

問題は、縮小可能なすべての列が一定のパーセンテージまで縮小されますが、それ以上には縮小されないことです。「アクティブな」テキストを表示するのに十分でない場合は、テーブル全体が親の幅に合わせて切り取られます。

したがって、問題は、縮小できる列の量を制御する方法が欠けているかどうかです。

PS すべてのレイアウトは、レイアウト xml を使用せずに、コードによって生成されます。

4

1 に答える 1

0

要素を縮小する代わりに、レイアウトの重みを使用するか、さらに良い場合は、ビューの可視性を INVISIBLE または GONE に設定することができます。ただし、テキストの行全体を表示する必要がある場合は、すべての行をまったく同じに保つことができます。次に、ビューがアクティブなときに、全文である relative_layout を使用して、別のビューを上に重ねることができます。したがって、基本的にはポップアップ ウィンドウ効果を使用することになります。

于 2012-02-23T20:56:44.067 に答える