Android設定はページ全体でクリックできません

2553 ワード

Android設定はページ全体でクリックできません
この需要をする時、ネット上のあれらのブログを見て、基本的にすべて言います:1、ルートレイアウト(LinearLayout)LinearLayout.を設置しますsetOnclickListener(null); 2、ルートレイアウト(LinearLayout)LinearLayoutを設定するsetEnable(false)...など.
上記2つのシナリオを実践的に検証した.ページ全体がクリックできないように制御する効果はありません.そこで自分はViewGroupのTouchイベントをブロックすることで動的に設定する.自己測定は効果を達成することができる.
public class EnableLinearLayout extends LinearLayout {
    boolean isNoClick = false;
    /***
     *         
     * @param isNoClick   true:      false:    
     */
    public void setNoClick(boolean isNoClick) {
        this.isNoClick = isNoClick;
    }

    public EnableLinearLayout(Context context) {
        super(context);
    }

    public EnableLinearLayout(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        if (isNoClick) {
            return true;
        }
        return super.dispatchTouchEvent(ev);
    }
}
`