2012-09-15 4 views
3

Jake Wharton이 ActionBarSherlock을 사용하고 있습니다. 내 활동 중 하나에서 탭 탐색을 사용합니다. 그리고 일부 뷰를 관리하는 ViewFlipper가 있습니다.ActionBarSherlock Tab - Slide

하지만 사용자가 탭 사이를 슬라이드 할 수 있기를 바랍니다.

표시된보기 (보기의 viewFlipper의 하위)에 다른보기가있는 경우 안전합니다.

예 : I가 제보기 (또는 세번째)에있어하면

<LinearLayout> 
    <ViewFlipper> 
      <LinearLayout> //First View 

      </LinearLayout> 
      <LinearLayout> //Second View 

       <TextView/> 

      </LinearLayout> 
      <LinearLayout> //Third View 

      </LinearLayout> 
    </ViewFlipper> 
</LinearLayout> 

가 슬라이딩 잘 작동; 그러나 두 번째에는 없습니다.

  1. 왜?
  2. 어떻게 해결할 수 있습니까? Touch Listener를 모든 "하위보기"로 설정해야합니까?

PS :는 I는 viewFlipper 함유 (루트)의 LinearLayout 청취자 세트.

+1

당신은'ViewPlipper'를'ViewFlipper' 대신에'Fragments'와 함께 사용해 보셨습니까? –

답변

0

나는 귀하의 질문 중 40 %를 이해했습니다. 정상 회담 전에 질문을 교정하십시오. 나는 두 가지 일에 대해 정말로 혼란 스럽다. # 1 뷰 또는 단편을 사용하고 있습니까? 탭을 사용하고 있다면, 조각을 사용해야합니다! # 2 ViewFlipper, Swiping/Horizontal Paging, 탭을 사용하여 조각을 전환하거나, 모두 3을 동시에 전환하고 있습니까?

두 번째 질문에 대한 대답으로 ViewFlipper를 사용하는 경우 OnClickListener를 구현해야하며 사용자가 Flipper를 클릭하면 앱이 onClick 메서드로 이동합니다. View.OnTouchListener를 구현하면 응용 프로그램이 onTouch (View v, MotionEvent 이벤트) 메서드로 이동합니다. onTouch의 매개 변수를 확인하십시오. MotionEvent가 필요합니다. ViewFlipper는 짧은 탭에 가장 적합합니다. MotionEvent는 스 와이프에 가장 좋습니다.

활동 ViewFlipper하기 위해

, 다음이 필요합니다 사용자가 실제로 ViewFlipper를 클릭 할 때

1) flippy = (ViewFlipper) findViewById(R.id.viewFlipper1);
2) flippy.setOnClickListener(this); //This is to make the ViewFlipper respond to clicks.
3) implements OnClickListener //This goes on top of your class (after “extends”).
4) 그런 다음, 프로그램이로 이동합니다 방법 :

public void onClick(View arg0) {flippy.showNext();} 

첫 번째 질문에 대한 답변. 귀하의 질문은 다음과 같아요 :
1) ViewFlipper를 사용하여 2 개 이상의 항목 사이를 슬라이드 할 수없는 이유는 무엇입니까?
이것은 방법입니다. 여기 Flippering.java라는 클래스의 샘플 코드는 다음과 같습니다

import android.app.Activity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.ViewFlipper; 

    public class Flippering extends Activity implements OnClickListener { 
     ViewFlipper flippy; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.h_swipe_neg_one); 
      flippy = (ViewFlipper) findViewById(R.id.viewFlipper1); 
      flippy.setOnClickListener(this); 
     } 

     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      flippy.showNext(); 
     } 

    } 
여기

인 해당 XML 문서 :

<ViewFlipper 
     android:id="@+id/viewFlipper1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:onClick="Clicked"> 

     <ImageView 
      android:id="@+id/imageView1a" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:src="@drawable/autumn_leaves" > 
     </ImageView> 

     <ImageView 
      android:id="@+id/imageView2a" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:src="@drawable/azul" > 
     </ImageView> 

     <ImageView 
      android:id="@+id/imageView3a" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:src="@drawable/big_mountain" > 
     </ImageView> 
    </ViewFlipper> 

</LinearLayout> 

android:src="@drawable/big_mountain"가 내 입술에있는 이미지를 참조하는/drawable- hdpi 폴더. 또한 <ImageView> 대신 <TextView>을 사용할 수 있습니다.그래서 예를 들면 :

<ViewFlipper> 
    <TextView></TextView> 
    <TextView></TextView> 
    <TextView></TextView> 
</ViewFlipper> 

또한, 내가보기 엔 의심 문제는 ActionBarSherlock의와 아무 상관이있다.