是否可以通過xml或代碼在android中禁用可展開列表視圖的滾動屬性?如何在android中禁用可展開列表視圖的滾動屬性?
2
A
回答
0
我認爲這是不可能的,因爲視圖自動設置爲垂直滾動列表就像ListView一樣,因爲ExpandableListView繼承了ListView。
0
但是,您不能禁用可展開列表視圖的自動滾動,但可以使用一些技巧來實現此目的。
您可以使用requestDisallowInterceptTouchEvent方法禁用可展開列表視圖的滾動。這將是不夠的。如果你不想在擴展時自動滾動exp,你應該計算子元素的高度,然後設置新的參數佈局爲exp,然後刷新滾動視圖。
boolean dispatchMode=false;
expandableListView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
v.getParent().requestDisallowInterceptTouchEvent(dispatchMode);
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(dispatchMode);
break;
case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(dispatchMode);
break;
}
// Handle ListView touch events.
v.onTouchEvent(event);
return true;
}
});
@Override
public void onGroupExpand(int groupPosition) {
LinearLayout.LayoutParams param = (LinearLayout.LayoutParams) expandableListView.getLayoutParams();
// param.height = (expandableListView.getChildCount() *
// expandableListView.getHeight());
int childrenCount = leftAttributeAdapter.getChildrenCount(groupPosition);
param.height += leftAttributeAdapter.getChildrenCount(groupPosition) * expandableListView.getChildAt(0).getHeight();
if (childrenCount > 2 && childrenCount < 10) {
param.height += 50 * 2;
} else if (childrenCount > 10)
param.height += 50 * childrenCount;
toast("Expandingggg Children count:" + leftAttributeAdapter.getChildrenCount(groupPosition) + " and Parameter heigh:" + param.height);
expandableListView.setLayoutParams(param);
expandableListView.refreshDrawableState();
scrollView1.refreshDrawableState();
}
});
expandableListView.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
Toast.makeText(getActivity(), " Child Clicked***" + this.toString(), Toast.LENGTH_SHORT).show();
return false;
}
});
expandableListView.setOnGroupCollapseListener(new OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
Toast.makeText(getActivity(), " Collapsed***" + this.toString(), Toast.LENGTH_SHORT).show();
LinearLayout.LayoutParams param = (LinearLayout.LayoutParams) expandableListView.getLayoutParams();
int childrenCount = leftAttributeAdapter.getChildrenCount(groupPosition);
param.height -= leftAttributeAdapter.getChildrenCount(groupPosition) * expandableListView.getChildAt(0).getHeight();
if (childrenCount > 2 && childrenCount < 10) {
param.height -= 30;
} else if (childrenCount > 10)
param.height -= 120;
expandableListView.setLayoutParams(param);
expandableListView.refreshDrawableState();
scrollView1.refreshDrawableState();
}
});
相關問題
- 1. Android在可擴展列表視圖中禁用自動滾動
- 2. 如何使用父佈局滾動可展開列表視圖
- 3. 如何啓用在Android上禁用列表視圖的滾動
- 4. 在列表視圖中禁用滾動
- 5. 可擴展列表視圖滾動到列表視圖中
- 6. 如何在嵌套滾動視圖中禁用彈性滾動
- 7. 如何禁用摺疊/展開視圖上滾動的CollapsingToolbarLayout?
- 8. 帶有滾動視圖的Android展開式列表
- 9. 禁用列表視圖的滾動
- 10. Android:在列表視圖上垂直滑動(禁用滾動)
- 11. 禁用列表視圖中項目的可點擊屬性
- 12. Android視圖部分在可滾動活動列表視圖
- 13. 禁用表視圖滾動
- 14. 如何在Android中從對象列表創建可展開列表視圖?
- 15. android可擴展列表視圖不滾動
- 16. 如何滾動可擴展列表視圖直到它結束?
- 17. 在vb.net中啓用禁用的列表視圖的滾動
- 18. 如何使列表視圖滾動爲我的列表項展開/摺疊
- 19. Android中的可擴展列表視圖
- 20. Android,禁用列表視圖右側的滾動條
- 21. Android:使多行edittext可滾動,禁用垂直滾動視圖
- 22. 如何在android中的列表視圖中顯示滾動拉?
- 23. 如何將android可展開列表視圖添加到mapview ..?
- 24. 如何在Android中自動滾動列表視圖?
- 25. 如何在android中禁用垂直滾動視圖?
- 26. 在列表滾動期間禁用onClick列表視圖項目的視圖
- 27. Android圖像視圖和滾動視圖中的列表視圖
- 28. 如何禁用圖庫視圖滾動
- 29. 如何使自定義視圖與可擴展列表視圖一起滾動...?
- 30. 展開可展開列表視圖中的所有子項