【问题标题】:Android search list invisible by default? Can it be done?Android搜索列表默认不可见?可以做到吗?
【发布时间】:2015-11-06 19:10:28
【问题描述】:

大家好,我有一个问题:

简而言之,我有一个列表视图,上面有一个搜索栏,我还可以在过滤结果等后开始我的其他活动;基本上一切正常。

我的问题是: 启动主要活动时,列表视图是可见的(显然足够了)。有没有办法使列表视图不可见,并且只有在搜索栏中键入才能使列表视图的结果变得可见?类似于应用内搜索的东西;还是我只是在想象?

我希望我不会对上面写的内容感到困惑。

期待您的回复,提前感谢您。

【问题讨论】:

  • 是的,这很简单,将列表视图的可见性默认设置为不可见,并在搜索栏中添加文本观察器,只要您有非空字符串,就让列表视图可见
  • 嗨 sarthak,感谢您的快速回复。是否有示例代码可供我查阅您刚刚告诉我的内容?
  • 我不知道您是否可以获得确切实施的解决方案,但您肯定可以逐步搜索。这是很简单的东西。
  • 会尝试,最坏的情况我会在 stackexchange 中追你:-P 谢谢 :-)
  • 什么都试过了。我让 textwatcher 下来,但关于 listview INVISIBLE,没有解决方案。它的确切代码是什么,我在哪里插入它?

标签: android listview search android-listview search-engine


【解决方案1】:

往这边走: 将您的列表视图可见性设置为从您的 xml 文件中消失或不可见:

android:visibility="gone"

现在在搜索栏编辑文本上应用 textwatcher

edittext.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                // TODO Auto-generated method stub
                //put your search logic here and populate listview.
                //after populating listview set its visibility to visible
                listView.setVisibility(View.VISIBLE);
                //and set listview visibility to GONE again when user erase all text from search edittext
                if(s.length() == 0){
                listView.setVisibility(View.GONE);
                } else {
                listView.setVisibility(View.VISIBLE);
                }
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                // TODO Auto-generated method stub
            }

            @Override
            public void afterTextChanged(Editable s) {

                // TODO Auto-generated method stub
            }
        });

【讨论】:

猜你喜欢
  • 2011-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多