android - 在 fragment 之间导航 (ViewFlipper)

标签 android android-fragments android-fragmentactivity

我有一个带有 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.showPreviousWelcomeActivity 中创建公共(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/

相关文章:

java - Android将流转换为字节数组内存不足异常

Android Studio 3.1 无法正确解析 "Theme.AppCompat"样式

java - 片段之间的导航出现问题

android - fragment 单元测试 : launchFragment throws ClassCastException

java - Realm 数据库问题。 - 没有找到默认的 Realm 配置 -

android - 使用 Fragments 替换部分屏幕内容

java - 由 : java. lang.IllegalStateException 引起:替换 Activity 中的任何 fragment 时,无法在 onSaveInstanceState 之后执行此操作

android - 在带有 fragment 的 Activity 中为 ListView 设置适配器时出现 Nullpointerexception

android - onResume 后应用程序崩溃

Android fragment 选项卡,带有适用于所有 api 的 viewpager