java - 如何通过单击按钮滑动 fragment

标签 java android android-fragments android-viewpager swipe

我有两个 fragment 和一个 MainActivity 类。 一切正常,但我想用 onClick 按钮滑动 fragment 。比如我点击 fragment A上的按钮,它会滑动到 fragment B。我需要在哪里添加代码?在 MainActivity 中还是在 Fragments 中?

答:

package com.example.mytesttabandsweeper;



import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;



public class Fragment_A extends Fragment implements OnClickListener {
    TextView wynik;
    Button przycisk;
    EditText procent,cena;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View v =  inflater.inflate(R.layout.fragment_a,  container, false);

        return v;
    }

}

乙:

package com.example.mytesttabandsweeper;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;



public class Fragment_B extends Fragment implements OnClickListener {


    TextView slowo;
    EditText podane_slowo;
    private ImageView iv;
    private Bitmap bitmap;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub\

        View v = inflater.inflate(R.layout.fragment_b,  container, false);

        return v;
    }

}

主要 Activity :

package com.example.mytesttabandsweeper;



import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends FragmentActivity {

    ViewPager viewPager=null;
    Button test;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager = (ViewPager) findViewById(R.id.pager);
        FragmentManager fragmentManager=getSupportFragmentManager();
        viewPager.setAdapter(new MyAdapter(fragmentManager));



    }




}

class MyAdapter extends FragmentStatePagerAdapter{

    public MyAdapter(FragmentManager fm) {
        super(fm);
        // TODO Auto-generated constructor stub
    }


    @Override
    public Fragment getItem(int i) {
        Fragment fragment = null;
        if(i==0)
        {
            fragment = new Fragment_A();
        }

        if(i==1)
        {
            fragment = new Fragment_B();
        }


        return fragment;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 2;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        // TODO Auto-generated method stub
        if(position==0)
        {
            return "A";
        }
        if(position==1)
        {
            return "B";
        }

        return null;
    }
}

一切正常,但我想使用 onClick 按钮滑动 fragment 。比如我点击 fragment A上的按钮,它会滑动到 fragment B。我需要在哪里添加代码?在 MainActivity 中还是在 Fragments 中?

最佳答案

Button点击你可以调用

viewPager.setCurrentItem(position);

或者如果你想要一个平滑的滚动你可以使用

viewPager.setCurrentItem(position,true);

关于java - 如何通过单击按钮滑动 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23959760/

相关文章:

java - 将 git 文件链接到 eclipse 动态 Web 项目

java - 专注于Keylistener

java - 如何在应用程序未聚焦时记录数据?

php - org.json.JSONException : Value <br of type java. lang.String 无法转换为 JSONObject

android - Shared ViewModel 的 onCleared() 从未被调用

java - 没有到主机的路由异常 - 尝试远程连接到 Postgresql 数据库

java - 在屏幕顶部显示按钮或图像

Android 多点触控 : ACTION_UP not always called?

android - 返回时刷新 ViewPager 中的数据

android - 如何测试 fragment View 是否对用户可见?