1

こんにちは、アンドロイドのデフォルト電卓のような単純なスクロール ビューを含む単純なプログラムがあります。
ユーザーがオフセット値を超えてスクロールすると、右または左にスクロールして完了します。
しかし、それはうまくいきません。
myh.scrollBy(max, 0); を使用すると 何も変わらない。

主な活動

public class MainActivity extends Activity {
int pos=0;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final HorizontalScrollView myh= (HorizontalScrollView) findViewById(R.id.myhview);
    myh.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View arg0, MotionEvent arg1) {
            int xpos= myh.getScrollX();
            int max=640;
            if((xpos>50  && pos==0) || (pos==640 && xpos>590)){
                pos=640;
                myh.scrollBy(max, 0);
                }
            if((xpos<590 && pos==640) || ( pos==0 && xpos<50) ){
                pos=0;
                myh.scrollBy(0, 0);
            }
            return false;
        }
    });
    }
}

そしてxmlは

<HorizontalScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="50dp"
    android:id="@+id/myhview"

     >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
<Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a01_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />


        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a00_text" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a02_text" />
    </LinearLayout>
</HorizontalScrollView>

</LinearLayout>
4

1 に答える 1

1

左または右にスクロールしたいときはいつでも、次のようなことを試してください。

horizontalScrollView.post(new Runnable() {
    public void run() {
        horizontalScrollView.fullScroll(HorizontalScrollView.FOCUS_RIGHT); //Can also be FOCUS_LEFT
    }
});
于 2013-08-02T18:29:11.907 に答える