如何在iOS中从左到右滑动回到之前的活动?

时间:2014-01-26 05:33:16

标签: android

我正在尝试为我的应用程序创建手指滑动效果。我在许多应用程序中看到,当您从左向右滑动手指时,另一页打开。如何将其添加到我的应用程序中?我想在这个页面中添加一些关于,反馈等的东西。

我该怎么做?我应该使用什么命令?

2 个答案:

答案 0 :(得分:1)

视图寻呼机与您需要的完全相同。请查看此处的文档

http://developer.android.com/reference/android/support/v4/view/ViewPager.html

答案 1 :(得分:1)

如果您想创建一个可滑动的屏幕,您应该继续ViewPager

ViewPager是一个视图(例如EditTextTextView),它拥有您创建所需内容所需的一切。

首先,您需要创建一个内部有ViewPager的xml文件,ViewPager涵盖的所有区域都可以滑动。例如,您可以构建一个布局,其中一半的屏幕由LinearLayout填充,另一半由ViewPager填充,如果您这样做,LinearLayout内的所有内容都将是静态的,ViewPager中的所有内容都是“可滑动的”。

让我们创建一个名为main.xml的XML文件,只需一个ViewPager即可填满整个屏幕。

<android.support.v4.view.ViewPager
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/activity_main_viewpager"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>

然后,使用TextViews创建任何您想要的任何布局,让我们将其称为fragment_page1.xml。创建第二个布局,包含您想要的任何内容,我们可以将其称为fragment_page2.xml

现在,你的MainActivity.java:

public class MainActivity extends FragmentActivity { //not Activity, but FragmentActivity


    ViewPager viewPager;

    PagerAdapter pagerAdapter;

    int FIRST_PAGE = 0;

    int SECOND_PAGE = 1;









    @Override
    public void onCreate(Bundle bundle){

        super.onCreate(bundle);

        setContentView(R.layout.main);



        viewPager = (ViewPager) findViewById(R.id.activity_main_viewpager);

        pagerAdapter = new MyViewPagerAdapter(getSupportFragmentManager()); //see below

        viewPager.setAdapter(pagerAdapter);

        viewPager.setCurrentItem(0);

    }







    //this happens when you press the back button
    @Override
    public void onBackPressed(){

        //Check if you are on your first page
        if(viewPager.getCurrentItem() == 0){

            //If yes, quit app
            super.onBackPressed();

        } 


        else{

            //if not, go to previous page
            viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);

        }


    }








    private class MyViewPagerAdapter extends FragmentStatePagerAdapter{








        public MyViewPagerAdapter(FragmentManager fm){

            super(fm);

        }








        @Override
        public int getCount(){

            return 2; //place the number of pages you want, in this case, only two pages

        }









        @Override
        public Fragment getItem(int position){

            //position count starts from 0, so if you have 3 pages, the count will be 0, 1 and 2
            if(position == FIRST_PAGE){ // first page 

                return new FragmentFirstPage();  // show first page

            }


            else if(position == SECOND_PAGE){ // second page

                return new FragmentSecondPage(); // show second page

            }



            //keep doing the same thing for how many pages you have



            else{

                 return null; //show a null page, generally you will never reach here

            }






        }

    }







}

现在我们需要创建2个类FragmentFirstPageFragmentSecondPage,您需要为每个要显示的页面添加一个类。让我们创建你的FragmentFirstPage.java

//this class you will use to handle button clicks, touch events, anything you have inside your fragment_page1.xml

    public class FragmentFirstPage extends Fragment{


    View root;




    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle){

        root = inflater.inflate(R.layout.fragment_page1, container, false);

                //If you want to retrieve a textview inside fragment_page1.xml for example, you shall do:
                //TextView text = (TextView) root.findViewById(R.id.blablabla); 

        return root;

    }



}

现在,这是您的FragmentSecondPage.java

public class FragmentSecondPage extends Fragment{


    View root;




    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle){

        root = inflater.inflate(R.layout.fragment_page2, container, false); 

        return root;

    }



}

运行您的应用,您可以浏览2页:)

希望它有所帮助!

= UPDATE =

如果您希望屏幕的一半由LinearLayout填充:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical">

        <!-- Here, add any views you want -->

    </LinearLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/activity_main_viewpager"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>

</LinearLayout>