Ülkeler arasındaki farkın seçilen ve Android kontrol aktif nedir?
Bu ülkelerin farklı bilmek istiyorum. Herhangi bir web sayfası bu açıklama bulamadım.
CEVAP
Kontrol ve Aktive arasındaki fark aslında oldukça ilginç. Hatta Google belgelerine özür dileyen (aşağıda vurgu eklendi)
... Bir listede örneğin, tek bir görünüm veya birden çok seçimi etkin, geçerli seçimi set görünümleri aktif hale gelir.(Um, Evet, terminoloji hakkında derin bir üzüntü duymaktayız.)Aktif devlet sette olduğu görüş çocuklara yayılır.
Ä°ÅŸte fark bu kadar:
- Devreye daha önce de kullanabilirsiniz. yani Petek tanıtıldı
- Aktif şimdi her bakış bir özellik. Yöntemleri setActivated etti ve isActivated()
- Aktif Görünümü üzerinde ayarlanır çocuklar için yayar
- İşaretli bir Görünüm işaretlenerek seçilebilir arayüz uygulanması etrafında döner. Yöntemleri () setChecked, isChecked(), toggle()
(Petek sonra) liste görünümü aramalar setChecked() VEYA setActivated() Android sürümü olarak aşağıda (Android kaynak kodundan alınan) göre:
if (mChoiceMode != CHOICE_MODE_NONE && mCheckStates != null) { if (child instanceof Checkable) { ((Checkable) child).setChecked(mCheckStates.get(position)); } else if (getContext().getApplicationInfo().targetSdkVersion >= android.os.Build.VERSION_CODES.HONEYCOMB) { child.setActivated(mCheckStates.get(position)); } }
Bu mCheckStates değişken unutmayın. Hangi listenizde pozisyonları / aktif kontrol edilir izler. Örneğin, getCheckedİtemPositions üzerinden erişilebilir bu(). Bir liste Görünümü için çağrı unutmayın.() setİtemChecked çağırır yukarıda. Diğer bir deyişle, eşit setİtemActivated denilebilir().
Petek öncesinde geçici çözümler uygulamak listesi öğeler state_checked yansıtmak zorunda kaldık. Bu liste Görünümü çağırır çünkü setChecked() SADECE düzeni (ve düzenleri işaretlenerek seçilebilir uygulamak değil) üst Görünüm ... ve yardım olmadan yaymak DEĞİL. Bu çözümler, aşağıdaki formu vardı: kök düzeni işaretlenerek seçilebilir uygulamak için Uzatın. Kurucusu, özyinelemeli olarak işaretlenerek seçilebilir uygulayan tüm çocukları bulmak. SetChecked() vb... denir, arama bunlar Görüşlerini iletecek. Bu görüşlere state_checked için farklı bir drawable ile devlet listesi drawables (örneğin bir CheckBox) sonra uygularsanız denetlenen durumu UI yansıyor.
Bir güzel arka plan için bir liste öğesi sonra Petek ihtiyacın mı var bir ifade ile bir drawable drawable devlet state_activated gibi bu kullanım setİtemChecked (tabii ki):
<item android:state_pressed="true" android:drawable="@drawable/list_item_bg_pressed"/> <item android:state_activated="true" android:drawable="@drawable/list_item_bg_activated"/> <item android:drawable="@drawable/list_item_bg_normal"/>
Bir liste öğesi Petek için önce iyi bir plan yapmak state_checked için yukarıdaki gibi bir şey yapmak istiyorsunuz ve ne DE işaretlenerek seçilebilir arabirimi uygulamak için en üstteki görünümü genişletmek gerek. Daha sonra uygulama devlet onCreateDrawableState uygulayarak doğru veya yanlış olup olmadığını Android söylemek ihtiyacı içinde olan() ve refreshDrawableState arama() zaman durum değişir.
<item android:state_pressed="true" android:drawable="@drawable/list_item_bg_pressed"/> <item android:state_checked="true" android:drawable="@drawable/list_item_bg_checked"/> <item android:drawable="@drawable/list_item_bg_normal"/>
... ve uygulamak için kodu işaretlenerek seçilebilir bir RelativeLayout içinde state_checked olabilir ile birlikte
public class RelativeLayoutCheckable extends RelativeLayout implements Checkable {
public RelativeLayoutCheckable(Context context, AttributeSet attrs) {
super(context, attrs);
}
public RelativeLayoutCheckable(Context context) {
super(context);
}
private boolean mChecked = false;
@Override
protected void onFinishInflate() {
super.onFinishInflate();
}
@Override
public boolean isChecked() {
return mChecked;
}
@Override
public void setChecked(boolean checked) {
mChecked = checked;
refreshDrawableState();
}
private static final int[] mCheckedStateSet = {
android.R.attr.state_checked,
};
@Override
protected int[] onCreateDrawableState(int extraSpace) {
final int[] drawableState = super.onCreateDrawableState(extraSpace 1);
if (isChecked()) {
mergeDrawableStates(drawableState, mCheckedStateSet);
}
return drawableState;
}
@Override
public void toggle() {
setChecked(!mChecked);
}
}
Aşağıdaki için teşekkürler
http://sriramramani.wordpress.com/2012/11/17/custom-states/
Stackoverflow: Android: how to add a custom button state
Stackoverflow: Custom Checkable View which responds to Selector
http://www.charlesharley.com/2012/programming/custom-drawable-states-in-android/
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
http://blog.marvinlabs.com/2010/10/29/custom-listview-ability-check-items/
Aktif ve pasif FTP arasındaki fark ned...
Git clone ve kontrol arasındaki fark n...
Arasındaki fark nedir :focus ve :aktif...
Bir iletişim arasındaki fark veya Andr...
Android sendStickyBroadcast ve sendBro...