2017-01-17 8 views
0

複数のテキストビューを含む水平スクロールビューがあります。一番上のレイアウトにポインタがあり、ポインタの下にそれぞれのフラグメントがトリガーされると、異なるテキストビューが表示されます。今すぐ自由にスクロールし、2つのテキストビューの間でそれを止めることができます。私が望むのは、左または右にスワイプするたびに一定量ずつスクロールして、上のポインタの中央にテキストビューが表示されるようにすることです。水平スクロールビューで1回のスワイプで一定量スクロール

私は相対的なレイアウトに入れ、ここに

<LinearLayout 
    android:id="@+id/ic_layout" 
    android:layout_width="match_parent" 
    android:orientation="horizontal" 
    android:layout_height="20dp"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:src="@drawable/arrow"/> 

</LinearLayout> 

<HorizontalScrollView 
    android:id="@+id/HorizontalScrollView1" 
    android:layout_width="300dp" 
    android:layout_height="75dp" 
    android:background="#FFF" 
    android:scrollbars="none" 
    android:fillViewport="false" 
    android:layout_below="@+id/ic_layout" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginLeft="100dp" 
    android:layout_marginRight="100dp"> 

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

     <TextView 
      android:layout_width="130dp" 
      android:layout_height="40dp" 
      android:paddingLeft="120dp" 
      android:paddingRight="10dp" /> 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="40dp" 
      android:text="Random Crap1" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp"/> 
     <TextView 
      android:layout_width="100dp" 
      android:layout_height="40dp" 
      android:text="Random Crap2" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp"/> 
     <TextView 
      android:layout_width="100dp" 
      android:layout_height="40dp" 
      android:text="Random Crap3" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp"/> 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="40dp" 
      android:text="Random Crap4" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp"/> 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="40dp" 
      android:text="Random Crap5" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp"/> 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="40dp" 
      android:text="Random Crap6" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp"/> 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="40dp" 
      android:text="Random Crap7" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp"/> 

     <TextView 
      android:layout_width="70dp" 
      android:layout_height="40dp" 
      android:paddingLeft="10dp" 
      android:paddingRight="70dp"/> 


    </LinearLayout> 


</HorizontalScrollView> 

答えて

0

フォローのためのXMLです:コードの下、特定の量の使用に水平ScrollViewをスクロールするための

final HorizontalScrollView YourHorizontalScrollView = (HorizontalScrollView) findViewById(R.id.YourHorizontalScrollView); 

YourHorizontalScrollView.post(new Runnable() { 

    @Override 
    public void run() { 
     final TextView YourTextView = (TextView) findViewById(R.id.yourTextView); 
     int scrollTo = 0; 
     final int count = ((LinearLayout) YourHorizontalScrollView.getChildAt(0)) 
       .getChildCount(); 
     for (int i = 0; i < count; i++) { 
      final View child = ((LinearLayout) YourHorizontalScrollView.getChildAt(0)) 
        .getChildAt(i);     
      if (child != yourTextView) { 
       scrollTo += child.getWidth(); 
      } else { 
       break; 
      } 
     } 
     YourHorizontalScrollView.scrollTo(scrollTo, 0); 
    } 

}); 

・ホープ、このあなたを助けます。

0

水平スクロールの代わりにViewPagerを使用する必要があります。これは毎回固定スクロールで使用できます。 ViewPagerの高さを修正してより快適に体験してください。 ViewPager用カスタムアダプタを使用

public class CustomViewPagerImageAdapterPC extends PagerAdapter { 

@Override 
public float getPageWidth(int position) { 
    // TODO Auto-generated method stub 
    //return super.getPageWidth(position); 
    return 0.4f; 
} 
関連する問題