我的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>
修改
对于遇到此问题的其他人,我有一个手势监听器,用于从左到右滑动,在滚动时获得焦点。所以基本上这个听众搞砸了上下滚动。
答案 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;
}