我有一个带有 ViewFlipper 的 Activity (android.support.v4.app.FragmentActivity),其中我有几个 fragment
src/com.package.WelcomeActivity.java
package com.package;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
public class WelcomeActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.welcome, menu);
return true;
}
}
res/layout/activity_welcome.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ViewFlipper
android:id="@+id/flipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<fragment
android:id="@+id/flip2"
class="com.package.fragment2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<fragment
android:id="@+id/flip2"
class="com.package.fragment2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<!-- ... -->
<fragment
android:id="@+id/flipN"
class="com.package.fragmentN"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</ViewFlipper>
</LinearLayout>
现在每个 fragment 都由两个主要部分组成:内容和 Action (返回,继续)当用户选项卡继续操作时执行 fragment 内的函数但我不知道如何调用 ViewFlipper.showNext()
和 ViewFlipper.showPrevious()
在 fragment 中
最佳答案
让你的 Activity 去做。
在调用 ViewFlipper.showNext()
和 ViewFlipper.showPrevious
的 WelcomeActivity
中创建公共(public)方法,如下所示:
public void showNextFragment() {
mViewFlipper.showNext();
}
public void showPreviousFragment() {
mViewFlipper.showPrevious();
}
然后在您的 fragment 中,您可以调用 Activity 的方法,如下所示:
WelcomeActivity parent = (WelcomeActivity) getActivity();
parent.showNextFragment();
// or parent.showPreviousFragment();
我只是在这里输入代码并没有尝试,可能有错别字,所以不要只是复制粘贴。但我希望它能很好地说明我的观点。
关于android - 在 fragment 之间导航 (ViewFlipper),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15527527/