4

スピナーをクリックしたときに表示される青色 (Holo でアプリをテストしています) を削除したいと思います。

私のコード:

    ArrayAdapter<String> array_adapter = new ArrayAdapter<String> (getActivity(), 
            R.layout.spinner_item, string_array);
    array_adapter.setDropDownViewResource(R.layout.spinner_item);

    Spinner spinner = (Spinner) getView().findViewById(R.id.spinner);
    spinner.setAdapter(array_adapter);

spinner_item.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinner_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAllCaps="true"
    android:background="@drawable/item"
    style="@style/EquidiaTheme.MySpinner" />

およびitem.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@android:color/transparent" />
    <item android:state_selected="true" android:drawable="@android:color/transparent" />
    <item android:drawable="@android:color/transparent" />
</selector>

これはうまくいきません。何か案が?

4

3 に答える 3

0

カスタマイズandroid:spinnerDropDownItemStyle

アクションバーのスタイリングドロップダウンメニュー

于 2013-03-05T16:34:27.330 に答える
0

これを行ったときにアイテムを選択すると、アイテムの青い四角形を取り除くことができました。最初に、values.xml で使用する色を宣言します。

<resources>
   <drawable name="red_color">#ff0000</drawable>
   <drawable name="blue_color">#0000ff</drawable>
   <drawable name="green_color">#00ff00</drawable>
   <drawable name="transparent_color">#00000000</drawable>
</resources>

Styles.xml でカスタム スタイルを定義するよりも

<resources>
    <style name="Theme.Spinner" parent="android:Theme.Holo">
        <item name="android:attr/listChoiceBackgroundIndicator">@drawable/transparent_color</item>
   </style>
</resources>

スタイルでは、リソースで定義された色のみを使用できました( @android:color/XXX または #XXX のような色をスタイルに直接設定しても機能しませんでした)

結局、Activity にそれらを適用します。私はXamarinを使用しているので、コードは次のとおりです。

[Activity( Label = "TestLayouts", MainLauncher = true, Icon = "@drawable/icon", Theme="@style/Theme.Spinner")]

しかし、アンドロイドの場合は次のようになります: <activity android:theme="@style/Theme.Spinner">

この回答を参照用に使用します: クリック可能なビューのデフォルトのセレクターの背景

また、スピナー自体の青い四角形を取り除くには、次を使用します。

 <Spinner 
   android:background="@null"

青い長方形を完全に削除するには、両方を使用する必要があります。また、このスタイルの属性が役立つ場合があります。

    <item name="android:attr/colorPressedHighlight">#FF0000</item>
    <item name="android:attr/colorLongPressedHighlight">#FF0000</item>
    <item name="android:attr/listChoiceIndicatorSingle">@drawable/red_color</item>
于 2014-11-13T10:24:04.880 に答える
0

テーマのないソリューション。スピナーが少ない場合に最適です。

状態でドローアブル (xml) を作成します ( https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList )

PRESSED と NORMAL の状態に同じ画像を使用する

次に、背景として使用します。

mySpinner.setBackgroundResource(R.drawable.my_spinner_state_drawable)

追加のヒント:

  • 「@android: drawable/btn_dropdown_normal」のように、システム リソースからシステム ドローアブル (画像) を使用できます。保守が容易で、よりネイティブなルック アンド フィールを提供できます。
  • ref http://androiddrawables.com/Buttons.html
于 2017-11-09T16:09:00.630 に答える