第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

android:ViewPager和Horizo??ntalScrollVIew

android:ViewPager和Horizo??ntalScrollVIew

ibeautiful 2019-12-20 10:32:30
我的HorizontalScrollView內(nèi)心深處ViewPager。我設(shè)置 requestDisallowInterceptTouchEvent(true);為,HorizontalScrollView但ViewPager有時仍會攔截觸摸事件。我還有其他命令可以用來防止View的父級和祖先攔截觸摸事件嗎?注意:HorizontalScrollView僅占據(jù)屏幕的一半。
查看完整描述

3 回答

?
人到中年有點甜

TA貢獻1895條經(jīng)驗 獲得超7個贊

我有同樣的問題。我的解決方案是:


成為的子類ViewPager并添加一個名為的屬性childId。

為該childId屬性創(chuàng)建一個setter 并設(shè)置ID HorizontalScrollView。

覆蓋onInterceptTouchEvent()的子類,ViewPager如果childId屬性大于0,則獲取該子項;如果事件在HorizontalScrollView區(qū)域中,則返回false。


public class CustomViewPager extends ViewPager {


    private int childId;    


    public CustomViewPager(Context context, AttributeSet attrs) {

        super(context, attrs);

    }   


    @Override

    public boolean onInterceptTouchEvent(MotionEvent event) {

        if (childId > 0) {

            View scroll = findViewById(childId);

            if (scroll != null) {

                Rect rect = new Rect();

                scroll.getHitRect(rect);

                if (rect.contains((int) event.getX(), (int) event.getY())) {

                    return false;

                }

            }

        }

        return super.onInterceptTouchEvent(event);

    }


    public void setChildId(int id) {

        this.childId = id;

    }

}

在onCreate()方法中


viewPager.setChildId(R.id.horizontalScrollViewId);

adapter = new ViewPagerAdapter(this);

viewPager.setAdapter(adapter);

希望這個幫助


查看完整回答
反對 回復(fù) 2019-12-20
?
catspeake

TA貢獻1111條經(jīng)驗 獲得超0個贊

謝謝回復(fù)。我稍微修改了您的解決方案,并設(shè)法使嵌套的ViewPagers工作:


public class CustomViewPager extends ViewPager {

    private int childId;


    public CustomViewPager(Context context, AttributeSet attrs) {

        super(context, attrs);

    }

     @Override

    public boolean onInterceptTouchEvent(MotionEvent event) {

        if (childId > 0) {          

            ViewPager pager = (ViewPager)findViewById(childId);


            if (pager != null) {           

                pager.requestDisallowInterceptTouchEvent(true);

            }


        }


        return super.onInterceptTouchEvent(event);

    }


    public void setChildId(int id) {

        this.childId = id;

    }

}


查看完整回答
反對 回復(fù) 2019-12-20
  • 3 回答
  • 0 關(guān)注
  • 421 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號