簡體   English   中英

自定義滾動視圖不滾動

[英]Custom scrollview doesn't scroll

我有個問題。 我有自己的滾動視圖,但是不起作用。 滾動條出現,但是當我嘗試使用它時不起作用。 我已經嘗試了很多東西,但是沒有任何效果。 代碼是:

@SuppressLint("ClickableViewAccessibility") public class myScrollView extends ScrollView {
  private boolean enableScrolling = true;

  public boolean isEnableScrolling() {
    return enableScrolling;
  }
  public void setEnableScrolling(boolean enableScrolling) {
    this.enableScrolling = enableScrolling;
  }

  public myScrollView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
  }
  public myScrollView(Context context, AttributeSet attrs) {
    super(context, attrs);
  }
  public myScrollView(Context context) {
    super(context);
  }

  @Override
  public boolean onInterceptTouchEvent(MotionEvent ev) {
    if (isEnableScrolling()) {
        return super.onInterceptTouchEvent(ev);
    } else {
        return false;
    }
  }
  @Override
  public boolean onTouchEvent(MotionEvent ev) {
    if (isEnableScrolling()) {
        return super.onInterceptTouchEvent(ev);
    } else {
       return false;
    }
  }

  @Override
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    // TODO Auto-generated method stub
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    setMeasuredDimension(getMeasuredWidth(), getMeasuredHeight());
  }
}

在此滾動的內部,我有一個relativeLayout ,在此內部有一個View View我繪制了一些位圖。 它們的數量超出其顯示屏幕的數量。

XML是:

     <com.edjume.myScrollView
       android:id="@+id/scroll_view"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_above="@+id/table">

        <RelativeLayout
            android:id="@+id/table"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
        </RelativeLayout>

    </com.edjume.myScrollView>

在活動中,我使用:

RelativeLayout ll = (RelativeLayout) findViewById(R.id.table);
ll.addView(new Table(this));

最后,在我的View (表)中有一個OnDraw()和一個onTouchEvent() onTouchEvent我使用了ACTION_DOWNACTION_MOVEACTION_UP選項。

我相信

  @Override
  public boolean onTouchEvent(MotionEvent ev) {
    if (isEnableScrolling()) {
        return super.onInterceptTouchEvent(ev);
    } else {
       return false;
    }
  }

應該:

  @Override
  public boolean onTouchEvent(MotionEvent ev) {
    if (isEnableScrolling()) {
        return super.onTouchEvent(ev);
    } else {
       return false;
    }
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM