【问题标题】:How to swipe for next item in ListView / RecyclerView?如何在 ListView / RecyclerView 中滑动查看下一项?
【发布时间】:2015-07-09 08:41:54
【问题描述】:

在 Gmail 应用程序中,当您点击电子邮件时,该特定电子邮件会打开,左右滑动会分别打开上一封或下一封电子邮件。

我想在我的应用程序中做同样的事情,我所做的是:

1.制作一个sqlite数据库并使用SimpleCursorAdapter填充ListView

2.ListView onItemClickListener 打开一个具有 ViewPager 的 Activity,并在它的帮助下设置一个 Fragment。

public class PagerActivity extends AppCompatActivity {

ViewPager pager;
FragmentPagerAdapter adapter;
Toolbar toolbar;
Bundle b;
Long id;
int count;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_screen_slide_pager);
    toolbar = (Toolbar) findViewById(R.id.tool_bar);
    setSupportActionBar(toolbar);
    b=getIntent().getExtras();
    id=b.getLong("id");
    count=b.getInt("count");
    adapter=new PagerAdapter(getSupportFragmentManager(),id,count);
    pager=(ViewPager)findViewById(R.id.pagerAdapter);
    pager.setAdapter(adapter);
}

3.我还使用cursor.getCount() 获取行数并将其传递给 FragmentPagerAdapter,后者进而设置可滑动视图/片段的数量。

4.这工作正常,但如果我在 ListView 中单击项目编号 5,我可以滑动到 6,7.. 但不能再滑动到4.

public class PagerAdapter extends FragmentStatePagerAdapter {
Long id;
int count;
Bundle b;

public PagerAdapter(FragmentManager fm,Long mId,int mCount) {
    super(fm);
    this.id=mId;
    this.count=mCount;
}

@Override
public Fragment getItem(int position) {
    b=new Bundle();
    b.putInt("position",position);
    b.putLong("id", id);
    b.putInt("count",count);
    PageFragment PageFragment=new PageFragment();
    pageFragment.setArguments(b);
    return pageFragment;
}

@Override
public int getCount() {
    return count;
}

}

如果需要,我准备从 ListView 切换到 RecyclerView,但我想知道这是否可行?如果是,怎么做?

【问题讨论】:

    标签: android android-fragments android-listview android-sqlite


    【解决方案1】:

    Yepp 在单击 Listitem 时启动 Activity,然后使用 FragmentPagerAdapter 和 Viewpager 将起作用。我也亲自实现过。

    【讨论】:

    • 我说它正在工作,你没有得到我的问题。再次阅读第 4 点。
    • 我的观点是实现没有任何问题,它应该可以工作,如果它正确更新数据,您应该检查您的片段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多