Search code examples
androidandroid-linearlayouthorizontalscrollview

How to scroll on particular position in HorizontalScrollView Android


I am adding Dynamic layout view in LinearLayout inside HorizontalScrollView. Layout xml are as below:

  <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

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

    <LinearLayout
        android:id="@+id/ll_placeHolder"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:orientation="horizontal">

    </LinearLayout>

</HorizontalScrollView>

By pragmatically adding 10 Views in Linear Layout as below

public class ScrollTest extends Activity {

  HorizontalScrollView hsv_category_list;
  LinearLayout ll_placeHolder;
  View layoutView[];
 @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.scroll_test);
    hsv_category_list=
   (HorizontalScrollView)findViewById(R.id.hsv_category_list);
    ll_placeHolder = (LinearLayout) findViewById(R.id.ll_placeHolder);
    layoutView = new View[10];

    for (int i = 0; i < 10; i++) {
        layoutView[i] = 
        LayoutInflater.from(this).inflate(R.layout.category_list_item, 
        null);
        layoutView[i].setId(i);

        ll_placeHolder.addView(layoutView[i]);
    }

    }
 }

output

I want to auto scroll to item on index 7 which is not visible. Please help me out to solve this.Thank you


Solution

  • I did, following working for me

     //index which your want to scroll
     int index=7;     
     layoutView[index].getParent().requestChildFocus(layoutView[index], layoutView[index]);