1

私はスピナーの外観を変更しようとしましたが、部分的に成功しました。私はテーマの部分をオーバーライドすることでこれをやっています。私は私のthemes.xmlとのstyles.xmlでスピナー項目(ボタン、ドロップダウンで、すなわちテキストサイズ)の文字サイズを変更するために管理:Androidスタイルの説明

マイthemes.xmlファイルは次のようになります。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<style name="CustomTheme" parent="@android:Theme.Holo.Light"> 
    <item name="android:windowActionBar">false</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:spinnerItemStyle">@style/CustomSpinnerItem</item> 
</style> 
</resources> 

私のstyles.xmlファイルは、次のようになります。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

<style name="CustomSpinnerItem" parent="@android:Widget.TextView.SpinnerItem"> 
    <item name="android:textAppearance">@style/CustomTextAppearance</item> 
</style> 
<style name="CustomTextAppearance"> 
    <item name="android:textSize">30dp</item> 
</style> 

</resources> 

は、しかし、私はスピナーのドロップダウンリスト内の項目のテキストの外観を担当している属性を見つけることができません。私は dropDownItemStyleを試しました。私の意見では、属性名は自明ではないので、どの属性がどの属性をどのように扱うかを文書化して、どの属性を上書きするかを知りたかったのです。私はテーマに使用されているすべてのスタイルをplesfromのthemes.xmlとstyles.xmlで追跡し、試行錯誤を経て適切な属性を見つけようとするのは非常に面倒です。

私は、レイアウトをアダプターに渡すことで外観を変えることができることを知っていますが、これは実際に私が探していたものではありません。(わかっている限り)スタイルで継承し、レイアウトXMLファイル。私はアダプタのカスタムレイアウトを作成した場合、私はちょうどテキストサイズを変更したい場合は、少し時間がかかると思う9パッチ画像などを作成する必要があります。もちろん

私は、Androidに新たなんだので、私は全体のコンセプトを誤解している可能性があります;)

+0

+1質問を通じて考え良いフォーマットと同様のため。 – coder

+0

誰か手掛かりがありませんか? – Schnodahipfe

答えて

1

あなたが尋ねたので、あなたはおそらく、答えを発見したが、同様の質問を見て他の人のために:

私は、彼らが何をすべきかの良い説明と属性名のリストを知らない(R.attrのページでは、ほとんどの名前にすでにある情報を提供します)が、私のやり方は、それは次のようになりますから

  • スタート私はsetDropDownViewResourに与える要素ce()、私の場合:android.R.layout.simple_spinner_dropdown_itemと見つける。

  • \ sdk \ platforms \ android-17(重複した結果を避けるために特定のプラットフォームのバージョン)でレイアウト定義を見つけます。

  • レイアウトファイルからスタイルを取得します。この場合:?android:attr/spinnerDropDownItemStyle

これで、必要な属性名が得られました。

システム自体が使用する属性を知っているので、使用する属性を推測しようとするのではなく、正しい方法である可能性が非常に高いです(バグがない限り)。いいえ、レイアウトは(あなたが持っているでしょうGUI要素の種類を決定するなど

私はアダプタのカスタムレイアウトを作成した場合、私は 9パッチ画像を作成する必要があると思いますまあ

、スピンナー、イメージボタン、カスタム要素...)ではなく、どのようにスタイルされているか(9パッチの背景、テキストの色...)、正しい外観を得るためにスタイルを混乱させる必要があります。

たとえば、視覚的な一貫性のために、Theme.HoloからGingerbreadにボタン、チェックボックス、およびスピナーのスタイルを移植しましたが、レイアウトを混乱させませんでした。上記の例)をthemes.xmlに入れて、私にスタイル名を与えました(例:Widget.Holo.DropDownItem.Spinner)。

その後、私はのstyles.xmlでアップことを見て、検索やコピー私のプロジェクトで任意のホロ具体的な言及をし、それに応じて名前空間を調整し、私のプロジェクトののstyles.xmlにそれ(および任意の親*)をインポート(にandroid:を追加属性を編集し、?android:attr@styleに置き換えてstyles.xmlファイルにコピーします)。

これまでのところ、私はレイアウトを全く使いこなす必要はありませんでした(ジンジャーブレッドのスピナーダイアログのラジオボタンの存在はxml属性:android:checkMarkによって決まります)。

  • スタイルは親の属性(のようなWidget.Holo.DropDownItem.Spinner)を持っていない場合、その親が同じスタイルマイナス最後の要素(例えば:Widget.Holo.DropDownItem)である