Расширяемый вид списка перемещает индикатор значка группы вправо в версии jellyBean 4.3?

Приведенный ниже метод не работает в версии Android jellybean 4.3.

historyExpaLV.setIndicatorBounds(historyExpaLV.getRight() - 60,
                    historyExpaLV.getWidth() - 8);    

Кто-нибудь знает решение? Заранее спасибо.


person pavan kumar    schedule 01.08.2013    source источник
comment
не работает - не очень полезное объяснение ваших симптомов.   -  person CommonsWare    schedule 01.08.2013
comment
В предыдущих версиях работает? Вы звоните ему до того, как он будет измерен? Подробнее, пожалуйста.   -  person Geobits    schedule 01.08.2013
comment
да, это работает в предыдущих версиях Geobits.   -  person pavan kumar    schedule 03.08.2013


Ответы (2)


Как я это исправил:

Обновите SDK Manager до Android 4.3 и используйте его в качестве цели сборки. Они представили новый метод в API 18 под названием setIndicatorBoundsRelative(int, int), который работает как другой (но правильно) в Android 4.3.

Сделайте проверку версии Android и используйте старый метод со старым API:

if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
   mListView.setIndicatorBounds(myLeft, myRight);
} else {
   mListView.setIndicatorBoundsRelative(myLeft, myRight);
}
person luben    schedule 02.08.2013
comment
но почему было сделано это изменение? - person Rat-a-tat-a-tat Ratatouille; 06.11.2013
comment
Что такое мой левый, мой правый? Пожалуйста, уточните это - person Anand Savjani; 08.07.2015
comment
myLeft и myRight — ваши желаемые значения, которыми вы хотите заполнить индикатор. Они называются моими, потому что вам решать, какими вы хотите их видеть. Ознакомьтесь с документацией: developer.android.com/reference/android /виджет/, интервал) - person luben; 08.07.2015
comment
Более чистое решение по адресу stackoverflow.com/questions/21706231/ - person Ramashish Baranwal; 03.10.2015

я думаю это ошибка

int right = (int) (getResources().getDisplayMetrics().widthPixels - TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, getResources().getDisplayMetrics()));
    expandableListView.setIndicatorBounds(right - getResources().getDrawable(R.drawable.group_indicator_padding).getIntrinsicWidth(), right);

этот код отлично работает до 4.2.2 и ничего не делает на 4.3

person Xan    schedule 01.08.2013
comment
Спасибо за ваш добрый ответ ... Который решает размер изображения индикатора моей группы статически ... - person Satheesh; 04.01.2014
comment
Ответ выше будет работать для вас. Поскольку setIndicatorBoundsRelative будет работать для Android ›= 4.3 - person AnkitRox; 09.01.2015