Bir Accordion-style widget such as on this page yaratmanın en iyi yolu bakıyorum. Standart Android araç setini kullanarak aynı efekti elde etmenin bir yolu var mı yoksa özel widget'ı mı oluşturmam gerekiyor? Eğer öyleyse - hangisini uzatmayı önerirsiniz?Android - akordeon Widget
cevap
üstünde ExpandableListView-s yığılmadır denemek için başka bir şey izler. Müşterilerimiz için kullanıyoruz, 2.2, 2.3.x, 3.2 ve 4.0.3 üzerinde test ettik. Bizim için oldukça iyi çalışıyor.
sonraki aşamada açılmak/kat üzerinde animasyon eklemek gidiş. Kendimi riske atmak zorunda ve @Bostone cevap en uygun olduğunu söylemek
Merhaba Maciej, başarıyla akordeon çalıştırın uygulama ve çok iyi görünüyor. Başvuruma giriş yapmak istedim, bunu nasıl yapabilirim? Dosyaları kopyalamayı denedim, ancak ic_resource ile ilgili sorun yaşıyorum. Bunu doğru şekilde yapıyorum? Biri tüm dosyaları kopyalamalı mı? –
@NicholasTJ Bence bunu github'da sormalısın ... ama burada sorduğun için: proje android kütüphane projesi, http://developer.android.com/tools/projects/index.html# LibraryProjects. Maven ile inşa edebilir ve apklib alabilirsiniz - https://code.google.com/p/maven-android-plugin/wiki/ApkLib –
adresine bakın. İpucu için teşekkürler, linkleri okuyacağım sağlanan. –
Ve durumda hala merak - bu hemen hemen doğrusal düzen içinde yığılmış düğmesi/düzeni çifti ile yapılabilir. Sözde kod
<LinearLayout android:orientation="vertical">
<Button android:text="Panel 1"/>
<SomeKindOfLayout android:id="@+id/panel1">
<!-- widgets in first panel go here -->
</SomeKindOfLayout>
<Button android:text="Panel 2"/>
<SomeKindOfLayout android:id="@+id/panel2" android:visibility="gone">
<!-- widgets in second panel go here -->
</SomeKindOfLayout>
<Button android:text="Panel 3"/>
<SomeKindOfLayout android:id="@+id/panel3" android:visibility="gone">
<!-- widgets in third panel go here -->
</SomeKindOfLayout>
<Button android:text="Panel 4"/>
<SomeKindOfLayout android:id="@+id/panel4" android:visibility="gone">
<!-- widgets in fourth panel go here -->
</SomeKindOfLayout></LinearLayout>
muhtemelen github de android accordion view projeyi itmiş birbirlerine
Hey, bu kod tanıdık geliyor ... ;-) – CommonsWare
Dünyayla paylaşmak zorundaydım :) Kayıt için - bu mailistte @commonsguy tarafından verilen bir snippet (android.developers) – Bostone
Hellow Ben Dynamiacally, akordiyon butonlarını yaratarak listedeki buton sayısı konusunda emin değil. Her düğme için, içinde bazı görünümler bulunan LinearLayout var. İlgili akordeon düğmesinin onclicklistini nasıl elde edeceğimi bilen herhangi biri olabilir, böylece ilgili LinearLayouts için Visiblity ve Gone arasında geçiş yapabilirim. –
:
İşte küçük bir ekran görüntüsü. Görebildiğim için sana kodumu aşağıda vereceğim. GitHub Maciej Łopaciński için teşekkürler, ama yorumlarda @SudoPlz'ın söylediği gibi, hiç bir dokümantasyon yok. Nereden başlayacağımı bilmiyordum. Eclipse ve Android Studio ile yapmaya çalışıyorum ve ne işe yaradığını anlamaya başlamak için projeyi çalıştıramazdım. Ayrıca, bu projedeki son taahhüt yaklaşık 1 yıl önceydi, bir şeylerin yanlış gitmesi durumunda bir çıkmazda sıkışacağımdan korkuyorum. Buna gittikten sonra
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".TasksListActivity">
<Button
android:id="@+id/magic_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Magic Btn"/>
<LinearLayout
android:id="@+id/magic_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
</LinearLayout>
</ScrollView>
2.-:
1.- Önce bir scrollview iç içe bir adet buton ve Düzen oluşturmak zorunda: Yani daha fazla gecikmeden, burada @Bostone merkezli benim çözümdür ilgili JAVA'nız var, düğmeyi bulup onClickListener ayarladıktan sonra, düzeni bulacağınız onClickListener'ın içinde.
Button findMagicBtn = (Button) findViewById(R.id.magic_btn);
findMagicBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
3.- Artık onClickListener'ın içinde düzeni bulacağız. İlk adımda görebileceğiniz gibi, düzen varsayılan olarak GONE
olarak ayarlanmıştır, ancak şimdi onu görünür olarak ayarlamanız gerekir. Sorun şu ki, tekrar nasıl gidebilirim ve tersi olur mu? Bu yüzden düzeni görünürlüğünü almak için bir koşul ekleyin ve gizli olacağını dayanan veya görünecektir:
Button findMagicBtn = (Button) findViewById(R.id.magic_btn);
findMagicBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LinearLayout findMagicLl = (LinearLayout) findViewById(R.id.magic_layout);
if (findMagicLl.getVisibility() == View.VISIBLE) {
findMagicLl.setVisibility(View.GONE);
} else {
findMagicLl.setVisibility(View.VISIBLE);
}
}
});
İstediğin birbirini olarak defalarca üzerinde konabilir.
Yani şimdi gerçekten düğmeye pezevenk olabilir bir akordeon gibi görünmesi istiyorum. Onlara örnek kullanarak, bunun sağında bir ok bırakabilir: gone ise (çekilebilir değiştirerek OnClickListener içinde ve okun yönünü değiştirmek için koşul kullanmanızı
findMagicBtn.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.right_arrow, 0);
Sen yapmalıyım ve aşağı ok ve görünür bir yukarı ok).
Ayrıca, böyle bir animasyon ekleyerek daha doğal görünmesini sağlayabilirsiniz:
ScaleAnimation animation = new ScaleAnimation(1f, 1f, 1f, 0f, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0f);
animation.setDuration(180);
animation.setFillAfter(true);
findMagicLl.startAnimation(animation);
Sen görünümü görünür iken yukarıdaki animasyon yapılması gerektiğini dikkate almak gerekir. Lütfen setFillAfter(true)
'un konteynerin boyutunu kalıcı olarak değiştireceğine dikkat edin, eğer böyle yaparsanız, belki de VIEW.GONE
'u kullanmak istemezsiniz. Bu sorunun Scale Animation
Bir akordeon simülasyonu için yolunuzu kullandım, ancak iç LinearLayout çocuk kontrolüne göre genişlemiyor. Bu düzenin içinde, bazı öğelerle bir ListView yerleştiriyorum. Çalıştırdığım zamanki etki sadece ilk öğenin gösterilmesidir, ancak diğer öğeleri bir kerede görmek için liste görünümünü kaydırırım. Tüm akordeon programlı olarak oluşturuluyor. Bunu nasıl çözeceğimi ve tüm liste görünümünü kaydırmadan nasıl göstereceğimi anlatan bir ipucu verebilir misiniz? – jstuardo
@jstuardo Üzgünüz ama bence sorunun listeyle ilgisi var, liste görünümleri her zaman ekranda mevcut boyuta uyacak kadar öğe yüklüyor. Öyleyse, eğer mevcut bir boyut yoksa ... liste içinde bir sonraki öğeyi görüntülenebilir olanın dışında görmek yalnızca kullanıcının onu görmesi gerekiyorsa, bu hafızaya neden olur. Benim düzeltmemde bu sorun varsa üzgün olacağım, ama lineerbackighighighighigh özelliklerini değiştirerek bunu düzeltmek düşünüyorum. Ebeveyn eşleştirmeyi deneyin. Ayrıca varsayılan olarak kullanılmayan görünürlük kullanılmadan ne olduğuna bakın. ... belki de liste görüntüleme davranışını geçersiz kılabilirsiniz. Bilmeme izin ver. – cutiko
@jstuardo Benzer bir sorunla karşılaşmış olabilirsiniz: http://stackoverflow.com/questions/18411494/android-listview-show-only-one-item http://stackoverflow.com/a/ 32881309/4017501 http://stackoverflow.com/a/31818632/4017501 – cutiko
- 1. click widget tarihinde android widget
- 2. Yeniden boyutlandırılabilir widget android
- 3. PDF Viewer Widget Android
- 4. android widget dinleyici tıklayın Düğme
- 5. android galeri Widget sonsuz kaydırma
- 6. akordeon. Aktif elemanı
- 7. winforms akordeon
- 8. Angularjs Akordeon
- 9. Widget
- 10. Android widget tasarımı - varsayılan siyah arka plan
- 11. Hata Ayıklama Android Widget Kodunda Eclipse
- 12. Android Widget onReceive Hizmet sınıfı'nı arayamaz?
- 13. Uygun android widget boyutu nasıl hesaplanır?
- 14. Uygulama Kurulumunda Widget Oluşturma
- 15. Bir Bootstrap akordeon başlığında
- 16. Sencha'da akordeon touch
- 17. JQuery Yatay Akordeon CSS
- 18. AngularJS/ui-bootstrap akordeon -
- 19. jquery akordeon yüksekliği
- 20. jquery alt akordeon kapanmıyor
- 21. angular-ui IE8 akordeon
- 22. Diğer widget (ler) i bildiren widget
- 23. Akordeon slayt animasyonunu sil sayfa
- 24. jQuery akordeon eklentisi nasıl genişletilir
- 25. Angularjs Akordeon Girişi isApen State
- 26. Bootstrap akordeon garip seklinde sıçrama
- 27. Widget düğmesinin görüntüsünü nasıl değiştirebiliriz?
- 28. Android tıklanabilir Widget ListView ile tıklanamaz ListItems'de tıklanamaz
- 29. Sadece belirli bir android sürümü için widget göstermek mümkün mü?
- 30. 1x1 Android Widget, WXGA720 ekranında 2x2 tarihinde eklendi
hakkında harika bir açıklaması var. Görüntüleme türü gizli ve Görünür'ü kullanarak iyi bir çözüme sahibim. İşte bu .. http://android-puremvc-ormlite.blogspot.com/2011/07/android-simple-accordion-panel.html – Surojit
Neden bu yerel bir widget değil mi? – mitsest