android ListView隐藏位置0直到滚动

时间:2014-10-12 07:08:06

标签: android listview scroll

我想要的是在创建列表时隐藏第一个位置

但是如果用户滚动列表以显示隐藏的项目

我试图在创建列表后隐藏第一个项目但有时候列表只有两个项目所以它不滚动我怎样才能实现?

listview.post(new Runnable() {
    @Override
    public void run() {
        listview.setSelection(1);
    }
});

列表至少可以包含行。

1 个答案:

答案 0 :(得分:0)

您可以尝试的一件事是跳过适配器中的第一个元素,当滚动ListView时,使用新项目(包括第一个项目)切换旧项目。 E.g:

final List<String> items = new ArrayList<String>();

List<String> itemsFirstSkipped = items.subList(1, items.size()-1);

final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, android.R.id.text1,
        itemsFirstSkipped);
listView.setAdapter(adapter);
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {

    }

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        // Make sure at least 1 item is scrolled
        if (firstVisibleItem>0) {
            adapter.clear();
            adapter.addAll(items);
            // notifyDataSetChanged is called by default
        }
    }
});