0

最初のデフォルト選択が行われないカスタムスピナーを実装しました。NoDefaultSpinnerのコードは、この投稿からのものですhttps://stackoverflow.com/a/3427058/1257074

問題は、レイアウト幅= wrap_contentがプロンプトテキストの幅よりも小さい場合、xmlレイアウトファイルでこのスピナーに定義されたプロンプトがカットオフされることです。下記参照。

NoDefaultSpinnerカットオフ

1つの解決策は、カスタムスピナーのxmlファイルで幅を定義することですが、残念ながら、スピナーはコードで動的に生成されます。

何かアイデアや提案をお願いしますか?

4

2 に答える 2

2

幅を動的に変更することになりました:

RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) s1.getLayoutParams();
lp.width = 400;
s1.setLayoutParams(lp);
于 2012-08-17T13:58:11.427 に答える
0

スピナーのonMeasure(int,int)を、「何も選択されていない場合」に正しくサイズ変更する特別なケースでオーバーライドしてみてください。

xml をインフレートするときに行われることは多かれ少なかれです。

于 2012-08-17T13:05:20.240 に答える