HorizontalScrollView doesn't scroll to left in

2019-06-21 01:30发布

问题:

I have HorizontalScrollView with android:supportsRtl="true" in my application. But instead of scrolling to left, it scrolling to right anyway. How would i fix this?

    <HorizontalScrollView
    android:id="@id/audioScrollView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/size_normal"
    android:layout_toStartOf="@+id/retakeBtn"
    android:layout_toEndOf="@+id/recordBtn"
    android:background="@drawable/border_drawable"
    android:paddingBottom="@dimen/size_micro"
    android:paddingTop="@dimen/size_micro"
    android:scrollbars="none"
    >

I am running for 17 level api, so attributes in xml should be fine.

回答1:

look at this example all you have to do is to add this line android:layoutDirection="rtl" to attribute of HorizontalScrollView

<HorizontalScrollView
    android:id="@+id/horizontalScrollView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layoutDirection="rtl">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="3" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="4" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="5" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="6" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="7" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="8" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="9" />
    </LinearLayout>
</HorizontalScrollView>

remember the views inside HorizontalScrollView will arrange them depending on ltr or rtl



回答2:

use this code and create view upside down

final HorizontalScrollView s=(HorizontalScrollView)ll.findViewById(R.id.horizontalScrollView);
    s.postDelayed(new Runnable() {
        public void run() {
            s.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
        }
    }, 100L);