我正在使用Jake Wharton的ActionBarSherlock;在我的一个活动中,我使用了Tab导航。 而且,我有一个ViewFlipper来管理一些视图。
但是,我希望用户能够在标签之间滑动。
它是有效的,如果在显示的视图中(因此,显示的viewFlipper的孩子)还有另一种视图。
示例:
<LinearLayout>
<ViewFlipper>
<LinearLayout> //First View
</LinearLayout>
<LinearLayout> //Second View
<TextView/>
</LinearLayout>
<LinearLayout> //Third View
</LinearLayout>
</ViewFlipper>
</LinearLayout>
如果我在第一个视图(或第三个视图)中,滑动工作正常;但不是在第二个。
PS:我将侦听器设置为包含viewFlipper的(root)LinearLayout。
答案 0 :(得分:0)
我理解你问题的40%。在您登顶之前请校对您的问题。我真的很困惑几件事。 #1您使用的是视图还是片段?如果你使用标签,你应该使用片段! #2您是通过ViewFlipper,Swiping / Horizontal Paging,使用Tabs还是同时全部3来切换片段。
在回答第二个问题时,如果您使用的是ViewFlipper,则需要实现OnClickListener,当用户点击Flipper时,应用程序将进入方法onClick。如果你实现View.OnTouchListener,应用程序将进入onTouch方法(View v,MotionEvent事件)。注意onTouch的参数。你需要一个MotionEvent。 ViewFlipper最适合短按。 MotionEvent最适合滑动。
为了激活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)然后当用户实际点击ViewFlipper时,程序将转到方法:
public void onClick(View arg0) {flippy.showNext();}
回答你的第一个问题。我猜你的问题是这样的:
1)为什么我不能使用ViewFlipper在两个以上的项目之间滑动?
这是怎么回事。以下是名为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"
是指我res / drawable-hdpi文件夹中的图片。另外,您可以使用<ImageView>
代替<TextView>
。例如:
<ViewFlipper>
<TextView></TextView>
<TextView></TextView>
<TextView></TextView>
</ViewFlipper>
此外,我非常怀疑你的问题与ActionBarSherlock有什么关系。