Intereting Posts
Встроенное аппаратное ускорение OOM для кучи Есть ли разумный способ ссылаться на ресурсы приложений (R.string …) в статических инициализаторах Как получить идентификатор устройства для Admob Есть ли что-то похожее на систему ресурсов Android в меньшем масштабе? Как пакетный коммутатор работает на Android как smali, произведенный apktool? Доступ к классу приложений в широковещательном приемнике Android-разрешения: телефонные звонки: состояние и идентификация телефона Почему MediaPlayer показывает так много лог-журнала на Android? Операторы обработки переопределения 2 и RxJava Как запретить экрану устройства Android отключиться во время выполнения Activity? Андроид (ART) с ошибкой JNI DETECTED ERROR IN APPLICATION: jarray – неверная справочная таблица недействительного стека или неверная ссылка В чем разница между setBackgroundResource и setBackgroundDrawable Android BLE Scan в фоновом режиме Несколько файлов dex определяют Lcom / amazon / ags / BuildConfig при использовании GameCircleSDK в Android Studio Поддержка speex в android

Android – NestedScrollView, который содержит ExpandableListView, не прокручивается при расширении

У меня есть ExpandableListView внутри NestedScrollView (да, я знаю, неплохо иметь прокрутку в другом прокручиваемом представлении, но я не знаю, что еще делать, пожалуйста, скажите мне, знает ли кто-нибудь лучший подход).

Размер содержимого в NestedScrollView по-прежнему находится на экране, поэтому он не будет прокручиваться, но когда ExpandableListView будет расширен, содержимое будет протекать вне экрана, но NestedScrollView прежнему не будет прокручиваться. Почему это так?

Вот мой макет NestedScrollView :

 <NestedScrollView> <LinearLayout> <LinearLayout></LinearLayout> ... // About 3 of the LinearLayouts <ExpandableListView/> </LinearLayout> </NestedScrollView> 

Solutions Collecting From Web of "Android – NestedScrollView, который содержит ExpandableListView, не прокручивается при расширении"

Вы можете использовать NonScrollExpandableListView вы можете достичь свойства без прокрутки любого Lisview или GridView или ExpandableListView , переопределив следующий метод.

 @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom); ViewGroup.LayoutParams params = getLayoutParams(); params.height = getMeasuredHeight(); } 

Поэтому для использования NonScrollExpandableListView вам нужно создать один пользовательский класс.

 public class NonScrollExpandableListView extends ExpandableListView { public NonScrollExpandableListView(Context context) { super(context); } public NonScrollExpandableListView(Context context, AttributeSet attrs) { super(context, attrs); } public NonScrollExpandableListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom); ViewGroup.LayoutParams params = getLayoutParams(); params.height = getMeasuredHeight(); } } 

И используйте его как.

 <com.example.extraclasses.NonScrollExpandableListView android:layout_width="match_parent" android:layout_height="wrap_content" /> 

Счастливое кодирование.

Мы не можем использовать listview, gridview или расширяемое listview внутри scrollview. Если вы не будете использовать расширяемое listview внутри scrollview, вы должны указать некоторую фиксированную высоту в расширяемое listview.

Добавьте android:nestedScrollingEnabled="true" в макет ExpandalbleListView.