2012-02-10 30 views
1

工作我做在我試圖使用viewflipper不同意見之間滑動的Android應用程序。我從here獲得幫助。我嘗試過使用代碼進行試驗,但現在我遇到了問題。我的佈局中有一個滾動視圖,因此viewflipper不會在視圖之間切換。誰能幫幫我嗎?這是我的XML佈局代碼與三個屏幕刷卡通過:Viewflipper不與滾動型

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout_main" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#ffffff" 
    android:orientation="vertical" > 

    <ViewFlipper 
     android:id="@+id/details" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="#ffffff" 
      android:orientation="vertical" > 


      <!-- <ScrollView --> 
      <!-- android:id="@+id/flotest" --> 
      <!-- android:layout_width="match_parent" --> 
      <!-- android:layout_height="match_parent" --> 
      <!-- android:background="#FFFFFF" > --> 


      <!-- <LinearLayout --> 
      <!-- android:id="@+id/LR1" --> 
      <!-- android:layout_width="match_parent" --> 
      <!-- android:layout_height="match_parent" > --> 


        <TextView 
         android:id="@+id/floText" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:text="@string/flo_garbage" 
         android:textColor="#000000" /> 
<!--     </LinearLayout> --> 
<!--    </ScrollView> --> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="#ffffff" 
      android:orientation="vertical" > 

      <RelativeLayout 
       android:id="@+id/rl1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" > 

       <TextView 
        android:id="@+id/textView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentLeft="true" 
        android:layout_alignParentTop="true" 
        android:text="@string/current_city" 
        android:textColor="#000000" /> 

       <ImageView 
        android:id="@+id/imageView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:layout_alignParentTop="true" 
        android:src="@drawable/disclosure" /> 
      </RelativeLayout> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="#ffffff" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/floText" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:text="FRIENDS PAGE" 
       android:textColor="#000000" 
       android:textSize="50dip" /> 
     </LinearLayout> 
    </ViewFlipper> 

</LinearLayout> 

上面的代碼工作完全正常,但如果我取消滾動視圖的一部分,滑動不起作用。這是我的活動代碼:

public class main extends Activity implements OnTouchListener { 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      layMain = (LinearLayout) findViewById(R.id.layout_main); 
      layMain.setOnTouchListener((OnTouchListener) this); 

     } 

     public boolean onTouch(View arg0, MotionEvent arg1) { 

      // Get the action that was done on this touch event 
      switch (arg1.getAction()) { 
      case MotionEvent.ACTION_DOWN: { 
       // store the X value when the user's finger was pressed down 
       downXValue = arg1.getX(); 
       break; 
      } 

      case MotionEvent.ACTION_UP: { 
       // Get the X value when the user released his/her finger 
       float currentX = arg1.getX(); 

       // going backwards: pushing stuff to the right 
       if (downXValue < currentX) { 
        ViewFlipper vf = (ViewFlipper) findViewById(R.id.details); 
        vf.setInAnimation(AnimationUtils.loadAnimation(this, 
          R.anim.push_left_in)); 
        vf.setOutAnimation(AnimationUtils.loadAnimation(this, 
          R.anim.push_right_out)); 
        if (screenmiddle) { 
         vf.showNext(); 
         screenleft = true; 
         screenmiddle = false; 
         screenright = false; 
        } else if (screenright) { 
         vf.showNext(); 
         screenleft = false; 
         screenmiddle = true; 
         screenright = false; 
        } 
       } 

       // going forwards: pushing stuff to the left 
       if (downXValue > currentX) { 

        ViewFlipper vf = (ViewFlipper) findViewById(R.id.details); 

        vf.setInAnimation(AnimationUtils.loadAnimation(this, 
          R.anim.push_right_in)); 
        vf.setOutAnimation(AnimationUtils.loadAnimation(this, 
          R.anim.push_left_out)); 
        if (screenleft) { 
         vf.showPrevious(); 
         screenleft = false; 
         screenmiddle = true; 
         screenright = false; 
        } else if (screenmiddle) { 
         vf.showPrevious(); 
         screenleft = false; 
         screenmiddle = false; 
         screenright = true; 
        } 
       } 
       break; 
      } 
      } 

      // if you return false, these actions will not be recorded 
      return true; 
     } 


    } 

我知道這是一個常見的問題,如thisthis,但我找不到任何解決辦法。

回答

0

而不是使用滾動的TextView,它更好地使用ListView,因爲ListView自動在其中啓用滾動。因此,上面的代碼完全適用於ListView而不是TextView。