我在可擴展列表視圖中使用,當我在列表視圖中打開其中一個項目時,我的滾動會自動關注打開的項目,我可以防止從列表中關注新項目並留在同一個地方?我試圖從打開的視圖中移除焦點,但它不起作用。Android在可擴展列表視圖中禁用自動滾動
3
A
回答
6
您需要重寫OnGroupClickListener並使用該事件。這將避免ExpandableListView執行默認操作,至少在編譯4.3時將smoothScroll移動到該位置。
下面是一個實現的例子:
expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
if(parent.isGroupExpanded(groupPosition)){
parent.collapseGroup(groupPosition);
}else{
boolean animateExpansion = false;
parent.expandGroup(groupPosition,animateExpansion);
}
//telling the listView we have handled the group click, and don't want the default actions.
return true;
}
});
如果你消耗的情況下,你還需要,如果你需要它來複制一些默認行爲。這包括播放聲音效果和調用展開/摺疊聽衆。
爲了針對默認行爲參考,我將發佈它,從Android源代碼截取的哈克的方式(4.3)
//in ExpandableListView.java
boolean handleItemClick(View v, int position, long id) {
final PositionMetadata posMetadata = mConnector.getUnflattenedPos(position);
id = getChildOrGroupId(posMetadata.position);
boolean returnValue;
if (posMetadata.position.type == ExpandableListPosition.GROUP) {
/* It's a group, so handle collapsing/expanding */
/* It's a group click, so pass on event */
if (mOnGroupClickListener != null) {
if (mOnGroupClickListener.onGroupClick(this, v,
posMetadata.position.groupPos, id)) {
posMetadata.recycle();
return true;
}
}
if (posMetadata.isExpanded()) {
/* Collapse it */
mConnector.collapseGroup(posMetadata);
playSoundEffect(SoundEffectConstants.CLICK);
if (mOnGroupCollapseListener != null) {
mOnGroupCollapseListener.onGroupCollapse(posMetadata.position.groupPos);
}
} else {
/* Expand it */
mConnector.expandGroup(posMetadata);
playSoundEffect(SoundEffectConstants.CLICK);
if (mOnGroupExpandListener != null) {
mOnGroupExpandListener.onGroupExpand(posMetadata.position.groupPos);
}
final int groupPos = posMetadata.position.groupPos;
final int groupFlatPos = posMetadata.position.flatListPos;
final int shiftedGroupPosition = groupFlatPos + getHeaderViewsCount();
smoothScrollToPosition(shiftedGroupPosition + mAdapter.getChildrenCount(groupPos),
shiftedGroupPosition);
}
returnValue = true;
} else {
/* It's a child, so pass on event */
if (mOnChildClickListener != null) {
playSoundEffect(SoundEffectConstants.CLICK);
return mOnChildClickListener.onChildClick(this, v, posMetadata.position.groupPos,
posMetadata.position.childPos, id);
}
returnValue = false;
}
posMetadata.recycle();
return returnValue;
}
0
種類,但是可以延長ExpandableListView
並覆蓋其]平滑滾動方法和不做任何事情。代碼是用C#編寫的,但你得到的基本思想是:
{
public class NonSmoothScrollExpandableListView: ExpandableListView
{
public NonSmoothScrollExpandableListView(Context context): base(context)
{
}
public NonSmoothScrollExpandableListView(Context context, IAttributeSet attrs) :
base(context, attrs)
{
}
public NonSmoothScrollExpandableListView(Context context, IAttributeSet attrs, int defStyle) :
base(context, attrs, defStyle)
{
}
public override void SmoothScrollByOffset(int offset)
{
}
public override void SmoothScrollBy(int distance, int duration)
{
}
public override void SmoothScrollToPosition(int position)
{
}
public override void SmoothScrollToPosition(int position, int boundPosition)
{
}
public override void SmoothScrollToPositionFromTop(int position, int offset)
{
}
public override void SmoothScrollToPositionFromTop(int position, int offset, int duration)
{
}
}
}
相關問題
- 1. android可擴展列表視圖不滾動
- 2. 在列表視圖中禁用滾動
- 3. 如何在android中禁用可展開列表視圖的滾動屬性?
- 4. 如何使自定義視圖與可擴展列表視圖一起滾動...?
- 5. Android中的可擴展列表視圖
- 6. 如何滾動可擴展列表視圖直到它結束?
- 7. Android視圖部分在可滾動活動列表視圖
- 8. 禁用表視圖滾動
- 9. 滾動視圖和擴展列表視圖
- 10. 禁用列表視圖的滾動
- 11. Android - 擴展列表視圖中的快速滾動縮略圖不能正確滾動列表
- 12. 如何在Android中自動滾動列表視圖?
- 13. 動態滾動視圖的佈局,而文本可以在android中擴展
- 14. 可擴展列表視圖android
- 15. Android可擴展列表視圖
- 16. Android的可擴展列表視圖
- 17. Android可擴展列表視圖
- 18. Android可擴展列表視圖
- 19. 可擴展列表視圖
- 20. UIColectionView在滾動視圖中垂直滾動 - 在滾動收藏視圖的區域時禁用滾動視圖
- 21. Android,禁用列表視圖右側的滾動條
- 22. 可擴展列表視圖中的不同子視圖android
- 23. 可水平滾動圖像的可擴展視圖
- 24. Dojox移動可滾動視圖 - 禁用滾動
- 25. Android在滾動視圖中添加列表視圖並從列表視圖中移除滾動
- 26. Android中的可滾動滑動視圖
- 27. android中可擴展列表視圖中的圖像圖標
- 28. 在sencha數據視圖列表中禁用滾動
- 29. 在列表滾動期間禁用onClick列表視圖項目的視圖
- 30. Android滾動自動增長列表視圖