如何使用 onTouchEvent 在一个 activity 中的布局之间滑动
how to swipe between layouts in one activity using onTouchEvent
swipping between two layouts我是新手 android 开发人员,我需要实现一个具有多个布局或框架的 activity,我希望只显示一个 time.I 还想使用 onTouchEvent 在这些布局(向左或向右)之间滑动,如图所示。
有什么建议吗?提前致谢。
要实现这一点,您必须使用带有滑动页面的选项卡。创建两个片段。
遵循流程。
我认为您尝试实现此目标的方式是旧方法。
对于带标签的滑动页面,请执行以下操作。
在 github 下载或复制以下两个文件并粘贴您的项目。这与 developers.google.com 相同,除了 setDistributeEvenly 方法。
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 支持设计库。
我想你会喜欢 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 的更多详细信息。编码愉快!
swipping between two layouts我是新手 android 开发人员,我需要实现一个具有多个布局或框架的 activity,我希望只显示一个 time.I 还想使用 onTouchEvent 在这些布局(向左或向右)之间滑动,如图所示。 有什么建议吗?提前致谢。
要实现这一点,您必须使用带有滑动页面的选项卡。创建两个片段。
遵循流程。
我认为您尝试实现此目标的方式是旧方法。
对于带标签的滑动页面,请执行以下操作。
在 github 下载或复制以下两个文件并粘贴您的项目。这与 developers.google.com 相同,除了 setDistributeEvenly 方法。
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 支持设计库。
我想你会喜欢 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 的更多详细信息。编码愉快!