Intereting Posts
Android: не удается разрешить метод findViewById (int) в AsyncTask Исключить исключение указателя в всплывающем окне подсказок на Samsung Galaxy Android 7 Android SoundPool.play () иногда лагает Android Place Picker закрывается сразу после запуска Использование MediaPlayer для одновременного воспроизведения одного и того же файла с перекрытием Как выделить элемент сетки для выбора? Android 6 getAccountName () Отсутствует android.permission.GET_ACCOUNTS Закройте все недавние открытые / запущенные приложения сразу с кнопочным андроидом Невозможно установить флаг отладки в AndroidManifest.xml Используйте флаг 0 или BIND_AUTO_CREATE для флага bindService. Обработка динамической текстовой строки Android в res / values Как заставить NFC работать на Android с помощью Qt 5.6 Как выйти из приложения Android с помощью кода? Как протестировать обновление базы данных sqlite перед загрузкой новой версии моего приложения в игровой магазин в Android Как открыть локальный файл .html в эмуляторах Android и Blackberry для тестирования?

Расширяемый ListView

Я использую расширение expandableListView для дизайна пользовательского интерфейса, поэтому мне интересно, как расширяться список Android, есть ли способ разрешить только один элемент списка, т. Е. Когда вы нажимаете и расширяете элемент, все остальные элементы автоматически сворачиваются.

благодаря

Solutions Collecting From Web of "Расширяемый ListView"

Когда вы нажимаете один элемент, вы можете прокручивать все остальное и сворачивать каждый, кроме одного, который вы только что нажали …

list.setOnGroupExpandListener(new OnGroupExpandListener() { public void onGroupExpand(int groupPosition) { int len = mAdapter.getGroupCount(); for(int i=0; i<len; i++) { if(i != groupPosition) { list.collapseGroup(i); } } } }); 

Вы могли бы сделать так, как предположил Киран, или если у вас есть только один открытый за раз, вы можете просто отслеживать, какой из них вы последний раз нажали. Вы могли бы сделать это, объявив int lastclicked в классе, а затем в слушателе, как предложил корейский, поместите list.collapseGroup(lastclicked)

Я бы привел пример кода, но я нахожусь на своем мобильном телефоне. Сожалею.

Но я лично предпочитаю использовать последний метод, чем использовать цикл for. Это кажется более эффективным.

Прежде всего, реализуйте OnGroupExpandListener в своей деятельности, что позволит вам добавить свой метод по умолчанию, а после добавления этого метода по умолчанию вам нужно сделать так:

 @Override public void onGroupExpand(int groupPosition) { // TODO Auto-generated method stub int len = expadapter.getGroupCount(); for(int i=0;i<len;i++) { if(i!=groupPosition) { expandlst.collapseGroup(i); } } }