1

複数のビューを含むレイアウトを作成したいと考えています。現在、3 つのタブがあり、そのうちの 1 つで、2 つのテキストビューと画像を含むレイアウトの特定の部分をスクロールできるようにしたいと考えています。ViewPager 、 Horizo​​ntalScrollView を使用してみましたが、レイアウトのこの部分をスクロールできませんでした。ここに私のレイアウトのデザインがあります

[一部画像][スクロール表示]

[表1]

【表2】

[タブ1][タブ2][タブ3]

ジェスチャー検出のために実行したコード

public class RegionView extends HorizontalScrollView implements View.OnTouchListener{
    private static final int SWIPE_MIN_DISTANCE = 5;
    private static final int SWIPE_THRESHOLD_VELOCITY = 300;
    private ArrayList<ArticleList> mItems= new ArrayList<ArticleList>();
    private GestureDetector mGestureDetector;
    private int mActiveFeature = 0;

    public RegionView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setItems();
        // TODO Auto-generated constructor stub
    }

    public RegionView(Context context) {
        super(context);
        internalWrapper = (HorizontalScrollView) findViewById(R.id.horizontalScrollView1);
        internalLayout = (LinearLayout) findViewById(R.id.regionll1);
        featureLayout = (LinearLayout) View.inflate(myContext,R.layout.regionview1,null);

        setItems();
    }

    public void setItems(){

        showToast("setItem Called");

        internalLayout.setOnTouchListener(gestureListener);

        for(int i = 0; i< mItems.size();i++){
            internalLayout.addView(featureLayout);
        }

        setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (mGestureDetector.onTouchEvent(event)) {
                    return true;
                }else if(event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL ){
                    int scrollX = getScrollX();
                    int featureWidth = v.getMeasuredWidth();
                    mActiveFeature = ((scrollX + (featureWidth/2))/featureWidth);
                    int scrollTo = mActiveFeature*featureWidth;
                    smoothScrollTo(scrollTo, 0);
                    return true;
                }else{
                    return false;
                }
            }
        });
        mGestureDetector = new GestureDetector(new MyGestureDetector());
    }

    class MyGestureDetector extends SimpleOnGestureListener {
        public boolean isRightToLeft = false;

        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            try {

                if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                    int featureWidth = getMeasuredWidth();
                    mActiveFeature = (mActiveFeature < (mItems.size() - 1))? mActiveFeature + 1:mItems.size() -1;
                    smoothScrollTo(mActiveFeature*featureWidth, 0);
                    isRightToLeft=true;
                    return true;
                }else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                    int featureWidth = getMeasuredWidth();
                    mActiveFeature = (mActiveFeature > 0)? mActiveFeature - 1:0;
                    smoothScrollTo(mActiveFeature*featureWidth, 0);
                    showToast("Gesture on right swipe");
                    isRightToLeft=false;
                    return true;
                }
            } catch (Exception e) {
                Log.e("Fling", "There was an error processing the Fling event:" + e.getMessage());
            }
            return false;
        }
    }
}

tabhost を含む私の XML ファイルでは、コードを 2 つの部分に分割して、Horizo​​ntalscroll ビューを実装している場所を示しています。

 <?xml version="1.0" encoding="utf-8"?>
  <TabHost
       xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@android:id/tabhost"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:background="@drawable/main_bckground"
       >
    <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
      <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >
        </RelativeLayout>   
        <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:background="@color/Orange"
                >
        </TabWidget>
             <FrameLayout
                   android:id="@android:id/tabcontent"
                       android:layout_width="match_parent"
                    android:layout_height="match_parent" >
            <!--First Tab-->
                <LinearLayout
                     xmlns:android="http://schemas.android.com/apk/res/android"
                     android:id="@+id/tabyourcity"
                     android:layout_width="fill_parent"
                     android:layout_height="match_parent"
                     android:paddingLeft="0dip"
                     android:paddingRight="0dip" >
            </LinearLayout>
               <!—Second Tab-->
               <LinearLayout
                     xmlns:android="http://schemas.android.com/apk/res/android"
                     android:id="@+id/tabnepal"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent" >
            <LinearLayout
                    android:layout_width = "fill_parent"
                    android:layout_height = "wrap_content"
                    android:id = "@+id/nepalpageview"
                    android:orientation="vertical">
                 <RelativeLayout
                   android:orientation="vertical"
                           android:layout_width="fill_parent"
                           android:layout_height="wrap_content">
                      <LinearLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                            android:id="@+id/loadContainernepal"
                android:layout_width="fill_parent"
                            android:layout_height="wrap_content"
                android:background="#414141"
                android:orientation="horizontal" >


    <TextView
                                android:id="@+id/loadingTextnepal"        
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="  Data is Loading...." 
                                android:textColor="#FFF"
 />                                                                                                                   <ProgressBar
                              android:id="@+id/progressBar2Nepal"
                              android:layout_width="25dip"
                              android:layout_height="25dip"
                  android:indeterminate="true"                                                        
                              android:visibility="visible"
                              android:layout_marginLeft="160dip"                        
                              style="@android:style/Widget.ProgressBar.Small"
                            />                                                                                                                         
                          </LinearLayout>
                        </RelativeLayout> 
                        <RelativeLayout
                            android:id="@+id/relativelayouttop"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >
                  <TextView
                       android:id="@+id/tv_sunrisetime"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:layout_alignLeft="@+id/tv_sunrise"
                       android:layout_alignRight="@+id/tv_sunrise"
                       android:layout_below="@+id/tv_sunrise"
                       android:gravity="center"
                       android:text="rise time"
                       android:textColor="#ffffff" />
                  <TextView
                       android:id="@+id/tv_sunrise"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:layout_alignParentLeft="true"
                       android:layout_below="@+id/img_SUNRISE"
                       android:layout_marginLeft="20dp"
                       android:gravity="center"
                       android:text="SUNRISE"
                      android:textAppearance="?android:attr/textAppearanceMedium"
                       android:textColor="@color/Orange"
                       android:textSize="18sp" >
                     </TextView>
                  <ImageView
                       android:id="@+id/img_SUNRISE"
                       android:layout_width="wrap_content"
                       android:layout_height="30dp"
                       android:layout_alignLeft="@+id/tv_sunrise"
                       android:layout_alignParentTop="true"
                       android:layout_alignRight="@+id/tv_sunrise"
                       android:paddingTop="5dp"
                       android:src="@drawable/sunriseicon" />
                 <TextView
                       android:id="@+id/TextView02"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/img_sunset"
                    android:layout_alignRight="@+id/img_sunset"
                    android:layout_below="@+id/img_sunset"
                    android:gravity="center"
                    android:text="SUNSET"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="@color/Orange"
                    android:textSize="18sp" />
                   <TextView
                         android:id="@+id/tv_sunsettime"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/tv_sunrise"
                    android:layout_alignRight="@+id/tv_sunrise"
                    android:layout_below="@+id/TextView02"
                    android:gravity="center"
                    android:text="SET time"
                    android:textColor="#ffffff" />
                <ImageView
                    android:id="@+id/img_sunset"
                    android:layout_width="wrap_content"
                    android:layout_height="30dp"
                    android:layout_alignLeft="@+id/tv_sunrisetime"
                    android:layout_alignRight="@+id/tv_sunrisetime"
                    android:layout_below="@+id/tv_sunrisetime"
                    android:src="@drawable/sunseticon" />
                <RelativeLayout
                    android:layout_width="130dp"
                    android:layout_height="120dp"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="15dp"
                    android:gravity="right" >
                          <android.support.v4.view.ViewPager
                                 android:id="@+id/viewPager"
                                 android:layout_width="fill_parent" 
                                 android:layout_height="fill_parent"
                                 android:layout_alignParentBottom="true"
                                 android:layout_alignParentLeft="true"
                                 android:layout_alignParentRight="true"
                                 android:layout_alignParentTop="true" >
                <HorizontalScrollView
                    android:id="@+id/horizontalScrollView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" >  

このレイアウトですべての画像とテキスト フィールドを指定すると、コードは正常に動作しますが、値を確認し、スクロール中にテキストと画像をここに配置する必要があるため、これを実装する際に問題が発生します。

<!--   <LinearLayout
                                android:id="@+id/scroll_linearlayout "
                            android:layout_width="match_parent"
                                android:layout_height="match_parent"
                            android:orientation="horizontal" >
                        <LinearLayout
                                android:id="@+id/regionll1 "
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:orientation="vertical" >
                             <TextView
                                      android:id="@+id/tv_regionname"
                                      android:layout_width="130dp"
                                      android:layout_height="wrap_content"
                                      android:gravity="center"
                                      android:text="Hilly Region"
                                      android:textColor="#ffffff"
                                      android:textSize="18sp" />
                          <ImageView
                                   android:id="@+id/img_region"
                                   android:layout_width="wrap_content"
                                   android:layout_height="75dp"
                                    android:src="@drawable/iconsresized5" />
                             <TextView
                                    android:id="@+id/tv_regiontemp"
                                    android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
                                            android:gravity="center"
        android:textColor="#ffffff" />
                        </LinearLayout> 
        <LinearLayout
                             android:id="@+id/regionll2 "
                             android:layout_width="match_parent"
                                        android:layout_height="match_parent"
                                        android:orientation="vertical" >
        </LinearLayout>
        <LinearLayout
                              android:id="@+id/regionll3 "
                              android:layout_width="match_parent"
                              android:layout_height="match_parent"
                              android:orientation="vertical" >
                        </LinearLayout> 
                          </LinearLayout> -->
                         </HorizontalScrollView>
        </android.support.v4.view.ViewPager>     
        </RelativeLayout>
                </RelativeLayout>
                <TableLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:paddingLeft="5dp"
                        android:paddingRight="5dp" >
                        <TableRow
                            android:id="@+id/tableRow1"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:layout_marginTop="20dp"
                            android:background="@color/Orange"
                            android:gravity="center" >
                            <ImageView
                          android:id="@+id/imageView1"
                             android:layout_width="25dp"
                             android:layout_height="20dp"
                          android:src="@drawable/rainfall_stastastics" />
                            <TextView
                                android:id="@+id/textView1"
                                android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:paddingLeft="5dp"
                             android:text="Rainfall Statistics"
                             android:textColor="#ffffff"
                             android:textSize="16sp" />
                       </TableRow>
           <TableRow
                           android:id="@+id/tableRow2"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                        android:background="@color/tbl_background" >
                        <ImageView
                           android:id="@+id/imageView3"
                           android:layout_width="4dp"
                            android:layout_height="wrap_content"
                            android:src="@drawable/bullet" />
                        <TextView
                            android:id="@+id/textView2"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Total this month to date            "
                            android:textColor="#000000" />
                        <TextView
                            android:id="@+id/tv_totalrainfall"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textColor="#000000" />
                    </TableRow>
                    <TableRow>
                                </TableRow>
                </TableLayout>
                        <TableLayout>
                        </TableLayout>
                 </LinearLayout>
               </LinearLayout>
                 </LinearLayout>
             </FrameLayout>
           </RelativeLayout>
        </TabHost>

ビューページャーによってiPhoneで得られるようなスクロールビューが欲しい

4

0 に答える 0