2016-12-05 6 views
0

Я создал макет, содержащий много линейных макетов, и у меня в одном из линейных макетов 3 списка ListViews установлены бок о бок. Я хочу сделать каждый из них прокручиваемым, но необычно. Например, я хочу иметь возможность прокручивать один из них, не затрагивая ничего другого.Android ListView прокручивает весь экран

Прямо сейчас, если я установил «android: nestedScrollingEnabled =« true »» для любого из списков, весь экран прокручивается. Я хочу, чтобы прокрутка списка ограничивалась макетом, в котором находится список (поэтому я могу прокручивать список, а остальная часть экрана остается на месте).

Как я могу это сделать? Пока это вообще не прокрутка или прокрутка всего экрана. Я просто хочу, чтобы список прокручивался.

Спасибо!

PS: Вот как соответствующая часть XML выглядит (ничего особенного):

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:layout_marginBottom="@dimen/list_vertical_margin"> 

     <ListView 
      android:id="@+id/realtime_vehicle_list" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" /> 

     <ListView 
      android:id="@+id/realtime_errors_list" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" /> 

     <ListView 
      android:id="@+id/realtime_depot_list" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" /> 
</LinearLayout> 
+0

напишите свой XML-файл здесь ............. – sushildlh

+0

Ну, это большой, я не уверен, что у меня достаточно персонажей, чтобы опубликовать его. –

ответ

0

Я понял это. По-видимому, макет «продолжается» за пределами экрана. Я только добавляю еще несколько элементов, чтобы проверить, прокручивается ли он, но на самом деле причина, по которой прокручивается только 3-й список, а остальные два - нет, потому что в 3-м списке было больше элементов, и это выходит за рамки. Вот почему это прокрутка.

Я приравнивал «выход из экрана» к идее, что список должен прокручиваться, но это просто проблема с дизайном - операционная система не думала, что список уходит с экрана.

Как только я поместил больше элементов в два других списка, теперь они все прокручиваются.

0

Один из ваших LinearLayout s находится в ScrollView, я думаю. Поэтому удалите ScrollView.

+0

№ Проверено, проверено дважды и проверено три раза, чтобы быть уверенным. Я только использовал LinearLayouts –

0

Попробуйте добавить следующий следующий код в деятельности, которая содержит те ListViews:

ListView mylistview = (ListView) findViewById(R.id.mylistview); 
mylistview.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     v.getParent().requestDisallowInterceptTouchEvent(true); 
     return false; 
    } 
+0

К сожалению, он ничего не делает. Однако, как ни странно, теперь один из списков действительно прокручивается. Но я удалил ваш код и все еще прокручивает :)) Итак, теперь у меня есть три списка один рядом друг с другом, но прокручивается только третий. Все три из них находятся в одном LinearLayout с горизонтальной ориентацией. –

+0

У меня есть деятельность в одном из моих проектов, похожих на то, что вы описываете, у меня была аналогичная проблема, как и вы. У меня в моем коде строки, которые я вам разместил, но у меня нет этого в моем xml: android: nestedScrollingEnabled = "true" попытаться стереть его, поставил код, который я вам дал, и посмотрим, работает ли он. –

+0

Да, я использовал это раньше, и он просто прокручивал весь экран. Что странно в этом, так это то, что третий список, последний в LinearLayout, действительно прокручивается. Я попытался поместить их в свои собственные LinearLayouts, думая, что, возможно, они хотят быть «одинокими в своем собственном макете», чтобы они могли прокручиваться индивидуально, но это все еще третий список, который прокручивается. Остальные 2 не прокручиваются. Это не имеет никакого смысла. Очевидно, что есть что-то «особенное» относительно третьего, и я пытаюсь выяснить, что это такое. –

Смежные вопросы