ScrollView / ListView不响应我的手指手势

时间:2011-12-18 12:55:26

标签: java android xml

我希望能够在屏幕上用手指滚动列表,但是现在我需要使用手机底部的跟踪球。我需要实施某些东西或者我做错了什么吗?这是我使用ScrollView的XML:

<ScrollView android:layout_height="250dip"
    android:layout_width="fill_parent">
    <LinearLayout android:layout_height="fill_parent"
        android:layout_width="fill_parent" android:orientation="vertical"
        android:id="@+id/linearLayout1">
        <ListView android:layout_width="fill_parent" android:id="@+id/android:list"
            android:layout_height="250dip"></ListView>
            <TextView android:id="@+id/android:empty"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/no_user_names" />
    </LinearLayout>
</ScrollView>

以下是来自我的班级:

使用此方法填充列表:

private void populateList(){
String[] projection = new String[]{NameProviderMetaData.NameTableMetaData._ID,      NameProviderMetaData.NameTableMetaData.NAME};
Cursor c = managedQuery(NAMES_URI,projection,null,null,NameProviderMetaData.NameTableMetaData.NAME);
String[] cols = new String[] {NameProviderMetaData.NameTableMetaData.NAME};
int[] views = new int[] {android.R.id.text1};
adapter = new     SimpleCursorAdapter(this,android.R.layout.simple_list_item_1,c,cols,views);
setListAdapter(adapter);
}

我在类的其他地方有一个onTouchEvent方法:

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (mGestureDetector.onTouchEvent(event))
    return true;
    else
return false;
}

2 个答案:

答案 0 :(得分:1)

您不能在ScrollView中使用ListView(任何两个具有相同方向滚动的视图)。你应该重新考虑你的布局!

你可以这样做:

<LinearLayout android:orientation="vertical" android:layout_height="fill_parent"
    android:layout_width="fill_parent">
        <ListView android:layout_width="fill_parent" android:id="@+id/android:list"
            android:layout_height="250dip" android:background="@null"
        android:cacheColorHint="@android:color/transparent"></ListView>
        <TextView android:id="@+id/android:empty"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/no_user_names" />
</LinearLayout>

答案 1 :(得分:0)

我认为不使用scrollview里面的listview而是使用inflater动态添加布局。和GestureDetector在垂直scrollview中不能完美地工作。我找出了scrollview的滑动代码

  

http://www.techin.info/2011/11/swipe-event-in-android-scrollview.html(已取消)

更新了链接:http://techin-android.blogspot.com/2011/11/swipe-event-in-android-scrollview.html