ScrollView與ListView的事件衝突

2021-09-06 15:47:13 字數 1957 閱讀 5053

布局檔案

當listview巢狀在scrollview中時,會發生衝突,導致listview控制項的拉動效果消失『

解決辦法:

重寫listview的ontouchevent(),並在返回前呼叫getparent().requestdisallowintercepttouchevent(true)  表示。不允許父層攔截或干擾本控制項

demo

1

package com.xqx.fight;23

4import android.os.bundle;

5import android.view.menu;

6import android.view.motionevent;

7import android.view.view;

8import android.view.view.ontouchlistener;

9import android.widget.arrayadapter;

10import android.widget.listview;

1112

public

class

mainactivity extends activity

28listview.setadapter(adapter);

2930 listview.setontouchlistener(new

ontouchlistener()

38});39}

4041 }

mainactivity.class

布局檔案

1

""2 xmlns:tools="

"3 android:layout_width="

match_parent

"4 android:layout_height="

match_parent"5

6 >78

910 android:layout_width="

match_parent

"11 android:layout_height="

match_parent

"12 android:orientation="

vertical

"13 >

1415

"match_parent

"16 android:background="

#5000

"17 android:layout_height="

100dp

"18 android:text="

上面部分

"/>

1920

21 android:layout_width="

match_parent

"22 android:layout_height="

250dp

"23 android:id="

@+id/listview

"24 >

252627"

match_parent

"28 android:layout_height="

100dp

"29 android:background="

#5000

"30 android:text="

底部部分

"/>

3132

3334

3536

37

activity_main.xml

效果圖:

ScrollView與ListView的相關問題

在scrollview中套用乙個listview,listview的高度不能全部顯示,這樣就達不到我們所需要的效果,所以在這裡我們需要重新計算listview的高度,網上計算listview的總高度的方法很多,我在這裡總結一下,貼出 public class listviewutil viewgro...

ScrollView與GridView滾動發生衝突

當gridview巢狀在scrollview裡時,發現gridview只顯示了一行。這是因為gridview有自己的滾動條,而scrollview也有自己的滾動條,兩者發生了衝突。解決方法是重寫gridview的onmesure方法,使其不再出現滾動條 public class mygridview...

ListView與ScrollView衝突解決方法

眾所周知listview與scrollview都具有滾動能力,對於這樣的view控制項,當scrollview與listview相互巢狀會成為一種問題 問題一 scrollview與listview巢狀導致listview顯示不全面 問題二 scrollview不能正常滑動 解決方式一 scroll...