Android ExpandableListView无法正常滚动

时间:2015-05-12 12:43:59

标签: android listview scroll

我的ExpandableListView滚动不正确; 我只能在ListView移动时滚动它,这对于快速导航非常烦人。 滚动设置完成后,我无法控制它,直到它再次移动为止。

我使用eventListView.expandGroup(0); eventListView.expandGroup(1); ...展开所有群组。

xml也没什么特别之处:

    <ExpandableListView
        android:id="@+id/event_list"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:paddingBottom="90dip"
        android:clipToPadding="false"/>

ListView有一个适配器和一个OnChildClickListener,这就是它。我到处搜索,但似乎无法找到答案,有人可以帮忙吗?

该视图的完整xml代码:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:id="@+id/timetable"
     android:background="@color/bg_white">

    <include android:id="@+id/placeholder_events"
         layout="@layout/placeholder_layout"/>

     <ExpandableListView
         android:id="@+id/event_list"
         android:layout_height="match_parent"
         android:layout_width="match_parent"
         android:paddingBottom="90dip"
         android:clipToPadding="false"/>

     <ImageButton
         android:layout_width="56dp"
         android:layout_height="56dp"
         android:src="@drawable/icon_left_arrow"
         android:layout_gravity="left|bottom"
         android:layout_marginLeft="16dp"
         android:layout_marginBottom="16dp"
         android:id="@+id/timetable_previousWeek_button"
         android:elevation="1dp"
         android:background="@drawable/floating_action_button"/>

     <ImageButton
         android:layout_width="56dp"
         android:layout_height="56dp"
         android:src="@drawable/icon_right_arrow"
         android:layout_gravity="right|bottom"
         android:layout_marginRight="16dp"
         android:layout_marginBottom="16dp"
         android:id="@+id/timetable_nextWeek_button"
         android:elevation="1dp"
         android:background="@drawable/floating_action_button"/>

</FrameLayout>

修改

对于遇到此问题的其他人,我有一个手势监听器,用于从左到右滑动,在滚动时获得焦点。所以基本上这个听众搞砸了上下滚动。

1 个答案:

答案 0 :(得分:1)

如果你想要列表视图的更柔和的流动(移动),可以做类似的事情。 在您的适配器类&#34; getChildView()&#34;方法,得到convertview obj之类的。

 public View getChildView(int groupPosition, int childPosition,
        boolean isLastChild, View convertView, ViewGroup parent) {
        TTLHolder holder;
        if (convertView != null) {
        holder = (TTLHolder) convertView.getTag();
        } else {
         convertView = inflater.inflate(R.layout.item, parent, false);
         holder = new TTLHolder();
         holder.title = (TextView)convertView.findViewById(R.id.item_title);
         convertView.setTag(holder);
     }

     holder.title.setText(this.getObjects().get(groupPosition).getValue()
            .get(childPosition).getName());

    return convertView;
}

&#34; getGroupView()&#34;方法

 public View getGroupView(int groupPosition, boolean isExpanded,
        View convertView, ViewGroup parent) {
        TTDHolder holder;

        if (convertView != null) {
        holder = (TTDHolder)convertView.getTag();
        } else {
             convertView = inflater.inflate(R.layout.item, parent, false);

             holder = new TTDHolder();
             holder.title = (TextView)convertView.findViewById(R.id.item_title);
             convertView.setTag(holder);
       }
       holder.title.setText(this.getObjects().get(groupPosition).getKey().getName());

    return convertView;
}