5

私は次のレイアウトを実現しようとしています: 固定幅の TextView は親の左側に配置され、その内部のテキストはその TextView の右側に配置されます (そのため、固定幅、他の方法で実行できますか?)親の残りの部分は、ドローアブル (単純な線) で埋められます。このような:スクリーンショット

これは 2 種類の行を含む ListView であり、行を含む行のレイアウトは非常に簡単です - TextView と ImageView を使用した LinearLayout (必要に応じて正確なコードを後で投稿できます)。そして、複合ドローアブルを持つ単一の TextView に置き換えることができるという警告が表示されます。

私はすべて最適化に賛成なので、そのアドバイスに従おうとしました。残念ながら、同じ結果を得ることができませんでした。行が TextView の幅に制限されているか、テキストが ListItem の右側に配置され、現在は固定位置になっています。

何か不足していますか?

編集:明らかにそれは実際には不可能であり、他のいくつかの複雑さがあるため(ドローアブルは現在、レベルリストのドローアブルであり、常に線であるとは限らず、設定する必要がある固定されていない高さがある場合があります)残しておきます現在の状態 - 1 つの TextView と 1 つの ImageView を含む線形レイアウト。

4

6 に答える 6

3

lint が参照する最適化は、固定サイズの画像により適したものです。あなたの場合、行は残りの画面の長さを伸ばす必要があるため、複合ドローアブルを備えたテキストビューで実行できるものではありません。この種の lint 警告は、実行しなければならないというよりもむしろ提案であり、画像ビューに何が必要かをチェックするのではなく、テキストビューと画像ビューのみを使用して線形レイアウトをチェックするだけで検出されます。すでに自分のやり方で動作している場合は、そのままにしておくべきだと思います。

于 2014-01-10T22:25:20.940 に答える
3

あなたに何かが欠けているとは思いません。TextView 複合ドローアブル機能はあまりカスタマイズできず、一般に、それらを正しく表示するために時間を費やす価値はありません。一部の lint 警告は、少し熱心すぎて時期尚早です。

于 2014-01-06T09:34:36.503 に答える
1

標準の TextView のみを使用してこれを達成する方法はありません。ビュー カウントを本当に減らしたい場合は、カスタム TextView クラスを作成し、layoutWidth を matchParent に設定して、テキストの端から右の境界線まで線を引くことができます。しかし、それはする価値がありません。いくつかの余分なビューがリストを遅くすることはありません。

于 2014-01-10T09:06:30.657 に答える