3

オブジェクトxmlに膨らませると、レイアウトが期待どおりに表示されるレイアウトがあります。Viewただし、カスタムLinearLayoutクラスを作成xmlし、クラスのインスタンスを作成するときにレイアウトをインフレートします

LayoutInflater.from(context).inflate(R.layout.icon_item, this, true);

コンストラクターで。LayoutParamsカスタム クラスには何も設定していません。カスタムLinearLayoutクラスを表示しようとすると、内部のレイアウトのテキストの一部を切り取る奇妙な余白が配置されているようです。

カスタムを設定する方法があるかどうかを知りたいLinearLayoutので、レイアウト xml には影響しませんが、目に見えないコンテナーとして機能します。インフレ時に「attachToRoot」をtrueに設定するとこれが解決すると思いましたが、期待どおりに機能しませんでした。

4

1 に答える 1

0

attachToRoot = true で使用inflate(..)する場合、これは次のように ViewGroup 内に XML を物理的に配置することと同じです。

<LinearLayout ..>
  <TextView .. />
</LinearLayout>

また、 によってレイアウトされてレイアウトされると、膨張している xml レイアウトに課せられたレイアウト プロパティを継承することも意味しmeasureますLinearLayout

たとえば、またはを<TextView..>含む場合、これらのプロパティを使用してビューをレイアウトします。android:layout_margin="8dp"paddingCustomLinearLayoutLayout

より良いソリューションを修正/作成してほしい場合は、さらにコードを投稿します。

于 2013-01-28T15:05:35.280 に答える