【问题标题】:How to swipe fragment with button click如何通过单击按钮滑动片段
【发布时间】:2014-05-30 16:57:42
【问题描述】:

我有两个片段和一个 MainActivity 类。 一切正常,但我想用 onClick 按钮滑动片段。例如,如果我单击片段 A 上的按钮,它将滑动到片段 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;
    }

}

主活动:

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 按钮滑动片段。例如,如果我单击片段 A 上的按钮,它将滑动到片段 B。我需要在哪里添加代码?在 MainActivity 中还是在 Fragments 中?

【问题讨论】:

    标签: java android android-fragments android-viewpager swipe


    【解决方案1】:

    点击Button即可拨打电话

    viewPager.setCurrentItem(position);
    

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

    viewPager.setCurrentItem(position,true);
    

    【讨论】:

    • 我应该在 MainActivity 中使用它吗?
    • 是的,如果ButtonFragment 中,您需要将点击事件传递给Activity
    • 再问一个问题。我只能通过单击按钮来滑动我的片段吗?我不想用手指滑动它们。
    • 你的FragmentsViewPager 吗?
    • 与答案中给出的方法相同,只需将position 替换为currentPosition - 1,其中currentPosition 是视图寻呼机的当前位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多