How to make HorizontalScrollView RIGHT to LEFT Scr

2020-07-06 04:39发布

By default HorizontalScrollView scrolls from Left to Right but I want to scroll from Right to Left.

How to do this? Any help will be appreciated.

2条回答
干净又极端
2楼-- · 2020-07-06 05:17

add layout_gravity RIGHT its helpful when items dose not wrap hole with

 <HorizontalScrollView
            android:id="@+id/scrollPartition"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbars="none">

            <LinearLayout
                android:id="@+id/lytPartition"
                android:layout_gravity="right"
                android:layout_width="wrap_content"
                android:layout_height="48dp"
                android:gravity="center_vertical"
                android:orientation="horizontal"
                android:paddingLeft="4dp"
                android:paddingRight="4dp"
                android:scrollbars="none">
            </LinearLayout>
        </HorizontalScrollView>

and in code need to scroll to the end of list

 findViewById(R.id.scrollPartition).post(new Runnable() {
    @Override
    public void run() {
      ((HorizontalScrollView) findViewById(R.id.scrollPartition)).fullScroll(View.FOCUS_RIGHT);
    }
  });

to set layout_gravity programmatically use this :

    HorizontalScrollView scrollView = new HorizontalScrollView(context);
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    layoutParams.gravity = Gravity.RIGHT;
    scrollView.setLayoutParams(layoutParams);
查看更多
甜甜的少女心
3楼-- · 2020-07-06 05:34

You can scroll it to the right edge of your scroll view in your code with something like this:

scrollView.postDelayed(new Runnable() {
    public void run() {
        scrollView.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
    }
}, 100L);

Related Q and A is https://stackoverflow.com/a/4720563/2511775

查看更多
登录 后发表回答