2011-06-20 15 views
5

スクロールを無効にするカスタムギャラリーを作成しようとしています。私はこれから次のことを知っています:how to disable gallery view scrollingAndroidカスタムギャラリーでスクロールを無効にする

public class MyGallery extends Gallery{ 


public MyGallery(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

@Override 
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY){ 
    if (isSelected()) 
     return true; 
    else return super.onFling(e1, e2, velocityX, velocityY); 
    } 

} 

動作していないようです。私は間違って何をしていますか?

+0

これまでにこれを解説していますか? –

答えて

2

例ではif (isSelected())句に注意してください。これを省略し、無条件でtrueを返して、継承された実装を完全に避けることができます。

オーバーライドonFlingはフイングを防止しますが、指を押し下げると通常のスクロールには影響しません。これを行うには、onScrollをオーバーライドしてすぐに真実を返すようにしてください。

これも機能しない場合は、onTouchEventを上書きして、そこにタッチイベントをフィルタすることもできます。

0

LinearlayoutでCustomListviewを使用しています。以下のコードを使用してスクロールを無効にしてください

public void enableDisableView(View view, boolean enabled) { 
     view.setEnabled(enabled); 

     if (view instanceof ViewGroup) { 
      ViewGroup group = (ViewGroup)view; 

      for (int idx = 0 ; idx < group.getChildCount() ; idx++) { 
       enableDisableView(group.getChildAt(idx), enabled); 
      } 
     } 
    } 
関連する問題