【问题标题】:Android tabs containing list scrolling to top包含滚动到顶部的列表的 Android 选项卡
【发布时间】:2015-02-05 18:18:22
【问题描述】:

我正在构建一个包含 4 个选项卡的 android 应用程序,每个选项卡都包含一个附加到光标适配器的片段。每个片段都包含一个项目列表。如果我在任何列表中向下滚动很多,我必须向后滚动很多才能回到顶部。我希望它的行为如下:当我单击当前选项卡图标时,它将自动滚动回顶部。我怎样才能实现这个功能?

编辑 1: 这就是它的实现方式:-

public class OutboxFragment extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> {

OutboxListAdapter mAdapter;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    mAdapter = new OutboxListAdapter(getActivity(),R.layout.outbox_list_item, null, 0);
    setListAdapter(mAdapter);
    getLoaderManager().initLoader(0, null, this);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_outbox, container, false);
    return view;
}

【问题讨论】:

    标签: android tabs scroll simplecursoradapter android-cursoradapter


    【解决方案1】:

    在标签更改后,您可以刷新列表视图:

    MyAdapter myAdapter = new MyAdapter(mContext, items);
    mListView.setAdapter(myAdapter);
    mListView.setSelection(0);
    

    无需设置新的适配器(这会导致 ListView 重置其状态),只需更新已在 ListView 上设置的适配器的内容。 你可以为你的适配器创建一个 refill() 方法:

    public void refill(List<EventLog> events) {
        mEvents.clear();
        mEvents.addAll(events);
        notifyDataSetChanged();
    }
    

    并将其称为 onTabChanged:

    if (mListView.getAdapter() == null) {
        MyAdapter myAdapter = new MyAdapter(mContext, items);
        mListView.setAdapter(myAdapter);
    } else {
        ((MyAdapter)mListView.getAdapter()).refill(items);
    }
    

    【讨论】:

      【解决方案2】:

      根据您的问题,您需要将片段列表滚动到顶部。您可以通过调用以下函数来做到这一点:

      getListView().smoothScrollToPosition(0);
      

      哪个 getlistView 返回您的片段 ListView;

      【讨论】:

      • 这出现在低质量的审核队列中。我可能会猜测这是因为您没有添加任何解释来说明您为什么认为这是解决方案。我建议您编辑您的答案以解释您是如何得出这个结论的。
      猜你喜欢
      • 2012-07-25
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 2023-03-25
      • 2015-06-09
      相关资源
      最近更新 更多