Android 如何构建一个可视寻呼机,它的行为是无限的,并检测它被刷到了哪一边?
我知道可以使用viewpager,但我很难找到一个好的资源来解释如何使用viewpager和以下附加功能 要记录滑动是向左还是向右的视图,并且无论哪种方式都只需重新加载新内容(如果向左,我希望它记录否,向右,它记录是) 我希望它是无限的,或者真的很大,比如10000 最后,还可以在下面添加按钮 总之,任何指导、教程或示例都将不胜感激Android 如何构建一个可视寻呼机,它的行为是无限的,并检测它被刷到了哪一边?,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我知道可以使用viewpager,但我很难找到一个好的资源来解释如何使用viewpager和以下附加功能 要记录滑动是向左还是向右的视图,并且无论哪种方式都只需重新加载新内容(如果向左,我希望它记录否,向右,它记录是) 我希望它是无限的,或者真的很大,比如10000 最后,还可以在下面添加按钮 总之,任何指导、教程或示例都将不胜感激 无选项卡-只是避免实现选项卡侦听器,并在创建视图寻呼机时包含选项卡 读刷 加载新内容 无限大还是真大 下面有按钮-通过将其包含在抽屉布局中来完成 希望这能把事情
- 无选项卡-只是避免实现选项卡侦听器,并在创建视图寻呼机时包含选项卡
- 读刷
- 加载新内容
- 无限大还是真大
- 下面有按钮-通过将其包含在抽屉布局中来完成
编辑: 只需添加如下代码即可解决任何选项卡问题:
//viewpager adapter
private PageAdapter mAdapter;
private ViewPager viewPager;
// Initializing pager - in On Create
viewPager = (ViewPager) findViewById(R.id.random_pager);
FragmentManager fm = getFragmentManager();
mAdapter = new PageAdapter(getSupportFragmentManager(), new UserCreatedFragment(), new UserUpVotesFragment(),new UserDownVotesFragment());
viewPager.setAdapter(mAdapter);
// Here you would declare which page to visit on creation
viewPager.setCurrentItem(1);
这是适配器:
public class PageAdapter extends FragmentPagerAdapter{
private Fragment frag1;
private Fragment frag2;
private Fragment frag3;
public PageAdapter(FragmentManager fm, Fragment frag1, Fragment frag2, Fragment frag3) {
super(fm);
this.frag1 = frag1;
this.frag2 = frag2;
this.frag3 = frag3;
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
//fragments should record no and reset to the same frag with new content back in position 1
return frag2;
case 1:
//fragments for activity
return frag2;
case 2:
//fragments should record yes and reset to the same frag with new content back in position 1
return frag2;
}
return null;
}
//return count for number of tabs/swipes
@Override
public int getCount() {
return 3;
}
}
活动的xml格式:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Framelayout to display Fragments -->
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- Listview to display slider menu -->
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
android:background="@color/list_background"/>
<!--View pager inside drawer so when opens it displays -->
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="300dp"
android:id="@+id/viewPageLinear">
<android.support.v4.view.ViewPager
android:id="@+id/random_pager"
android:layout_width="wrap_content"
android:layout_height="300dp">
</android.support.v4.view.ViewPager>
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:gravity="center"
android:id="@+id/no"
android:layout_below="@+id/viewPageLinear"/>
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:gravity="center"
android:layout_below="@+id/no"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
</RelativeLayout>
加载的片段的xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:gravity="center"
android:layout_alignParentTop="true"
android:id="@+id/imagehere"/>
</RelativeLayout>
建议使用
FragmentStatePagerAdapter
而不是FragmentPagerAdapter
请参阅以供参考
当有大量数据时,此版本的寻呼机更有用
页,更像列表视图
除此之外,我还不太清楚问题(或问题)是什么。如果您想在ViewPager中添加选项卡标题,则必须将其添加到ViewPager中
<android.support.v4.view.ViewPager
android:id="@+id/random_pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.view.PagerTitleStrip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top" />
</android.support.v4.view.ViewPager>
你的意思是,你想要一个没有标题指示位置的viewPager,还有无限多的标签?看看我的编辑,我基本上有一个适配器,没有标签,没有标题。我正在尝试做我在交换机案例中适配器中所述的事情查看Konrad答案,使用FragmentStatePagerAdapter获得您想要的结果。将xml张贴在您有ViewPager的地方,我理解您的问题,但在回答之前,让我看看您的xml我添加了xml和上面的场景,谢谢,这里是我尝试读取滑动的场景-如果左记录否,如果右记录是,则从缓存中抓取新内容并显示,使用相同的两个滑动选项,我在想也许我可以有3个“页面”,向左滑动记录动作,然后它重置到位置(中间-1),然后加载缓存中的下一个可用内容。。。唯一的问题是我不知道如何调用reset并要求刷新内容这是不推荐的。你可以使用
androidx.fragment.app.FragmentStatePagerAdapter
我不想用标签或标题。。。我正试图做相反的事情,阅读上面我试图做的场景我一直在试图理解你的意思,但我理解的是:1-如果用户向左滑动,你想重置内容?如果用户向左或向右滑动,我想拖动内容,只需使用向左或向右滑动作为是或否。。。i、 e.如果您熟悉该应用程序,tinder实现其刷卡的方式
@Override
public void onPageSelected(final int position) {
onTabChanged(mPager.getAdapter(), mCurrentTabPosition, position);
mCurrentTabPosition = position;
}
};
protected void onTabChanged(final PagerAdapter adapter, final int oldPosition, final int newPosition) {
if (oldPosition>newPosition){
// left to right
}
else{
//right to left
}
}