SORU
18 AĞUSTOS 2015, Salı


Nasıl bir Spinner için farklı bir tema ayarlamak'ler açılır mı?

Örnek bir kullanım:

enter image description here

Spinner karanlık temalı, ama açılan ışık temalı olmasını istiyorum.

CEVAP
18 AĞUSTOS 2015, Salı


M Android

Şimdi yeni teması " pop-up için kullanılan ayarlamanızı sağlar android:popupTheme parametre vardır Spinner 6.0 (açılan) Android.

Bu gibi kullanabilirsiniz:

<Spinner
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:popupTheme="@android:style/ThemeOverlay.Material.Light" />

Bu cihazlar API düzeyinde çalışan 23 fakat bu cihazlar Android alt sürümü üzerinde çalışacak.

AppCompat

Bu AppCompat devreye giriyor. Spinner uygulaması da popupTheme, ama biraz daha ilgili hakkı elde etmek için destekler.

<Spinner
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

Bundan sonra, Adaptör AppCompat ile çalışabilmek için güncellemeniz gerekir. ThemedSpinnerAdapter yeni arabirimini yaparak bunu.

public class MyAdapter extends BaseAdapter implements ThemedSpinnerAdapter {

   Theme getDropDownViewTheme() { ... }

   void setDropDownViewTheme(Theme theme) { ... }

}

Bu yöntemler Spinner tarafından manzaralı bir damla şişirme için kullanmak için hangi Adaptör söylemek mümkün olması için kullanılır. Bu mümkün olduğunca kolay yapmak adaptörü için takabilirsiniz Helper sınıf verdik.

Bu adaptörü gibi bir şey olur demektir:

public class MyAdapter extends BaseAdapter implements ThemedSpinnerAdapter {
  private final ThemedSpinnerAdapter.Helper mDropDownHelper;

  public MyAdapter(Context context) { 
    mDropDownHelper = new ThemedSpinnerAdapter.Helper(context);
  }

  @Override
  public View getDropDownView(int position, View convertView, ViewGroup parent) {
    View view;

    if (convertView == null) {
      // Inflate the drop down using the helper's LayoutInflater
      LayoutInflater inflater = mDropDownHelper.getDropDownViewInflater();
      view = inflater.inflate(R.layout.my_dropdown, parent, false);
    }

    // ...

    return view;
  }

  @Override
  public void setDropDownViewTheme(Theme theme) {
    mDropDownHelper.setDropDownViewTheme(theme);
  }

  @Override
  public Theme getDropDownViewTheme() {
    return mDropDownHelper.getDropDownViewTheme();
  }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ash100HD

    Ash100HD

    29 EKİM 2011
  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009