如何使用onTouchEvent在一个活动中的布局之间滑动

时间:2016-03-13 15:51:09

标签: android android-activity viewflipper

swipping between two layouts我是新手android开发人员,我需要实现一个具有多个布局或框架的活动,我希望一次只显示一个。我也想在这些布局之间滑动(左或右) )使用onTouchEvent,如图所示。 有什么建议吗?先谢谢。

2 个答案:

答案 0 :(得分:0)

要实现此目的,您必须使用带有滑动页面的标签。创建两个片段。

按照流程进行操作。

我认为你试图实现这个目标的方式是一种陈旧的方式。

对于带有标签的滑动页面,请执行以下操作。

在github上下载或复制以下两个文件并粘贴您的项目。这与developers.google.com相同,但setDistributeEvenly方法除外。

https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabLayout.java

https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabStrip.java

activity_main.xml中

<your.package.name.SlidingTabLayout
    android:clickable="true"
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
 </your.package.name.SlidingTabLayout>

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

MyAdapter.java(这里我只用了两页)

class MyPagerAdapter extends FragmentPagerAdapter  
{  
    String[] title = {"All","Favourites"};
    public MyPagerAdapter(FragmentManager fm) {  
        super(fm);  
    }  
    @Override  
    public Fragment getItem(int position) {
        Fragment fragment=null;  
         if (position==0)
            fragment= new All();  
             if (position==1)
                fragment= new Favourites();  
        return fragment;  
    }  
    @Override  
     public int getCount() {  
        return 2;  
    }  
       @Override  
       public CharSequence getPageTitle(int position) {
             return title[position];
    }  
 }  

tab_view.xml(仅限标签视图,如果您需要,您也可以在此处使用ImageView)

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
    <TextView
        android:id="@+id/tab_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text=""
        android:padding="15dp"
        android:textStyle="bold"
        android:textSize="25dp"
        />
   </FrameLayout>

MainActivity.java

 private SlidingTabLayout tabLayout;
 private ViewPager pager;
 tabLayout= (SlidingTabLayout) findViewById(R.id.tabs);  
 pager = (ViewPager) findViewById(R.id.pager);  
 tabLayout.setCustomTabView(R.layout.tab_view,R.id.tab_title);  
 MyPagerAdapter adapter =  new MyPagerAdapter(getSupportFragmentManager());  
 pager.setAdapter(adapter);  
 tabLayout.setDistributeEvenly(true);  
 tabLayout.setViewPager(pager); 

以上代码很好。但最新的方法是通过Android支持设计库来实现用页面滑动选项卡。

答案 1 :(得分:0)

我想你想要SwipeViews(http://developer.android.com/design/patterns/swipe-views.html)。您可以使用ViewPager实现此目的:

<?xml version="1.0" encoding="utf-8"?>
  <android.support.v4.view.ViewPager
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/pager"
   android:layout_width="match_parent"
   android:layout_height="match_parent" />

有关http://developer.android.com/training/implementing-navigation/lateral.html的更多详情。快乐的编码!