Android流式布局如何实现历史搜索记录

最近在开发项目的时候,有一个需求是展示历史搜索记录 ,展示的样式是流式布局(就是根据内容自动换行)。在网上看到了一个不错的类库跟大家分享一下

首先在AndroidStudio简历一个工程项目导入module类库,我会把项目demo方法GitHub上

说一下demo中的实现方式

在 activity_main.xml中

  <?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <EditText      android:id="@+id/edt"      android:layout_width="match_parent"      android:layout_height="wrap_content" />    <Button      android:id="@+id/btn"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:text="确定" />    <ScrollView      android:layout_width="match_parent"      android:layout_height="match_parent">      <com.zhy.view.flowlayout.TagFlowLayout        android:id="@+id/id_flowlayout"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        app:max_select="-1" />    </ScrollView>  </LinearLayout>

实现模拟搜索效果图

MainActivity.Java 代码

  public class MainActivity extends AppCompatActivity {    private TagFlowLayout mFlowLayout;    private EditText editText;    private Button button;    private List<String> strings;    //布局管理器    private LayoutInflater mInflater;    //流式布局的子布局    private TextView tv;    public Handler handler = new Handler() {      @Override      public void handleMessage(Message msg) {        switch (msg.what) {          case 1:            mFlowLayout.setAdapter(new TagAdapter<String>(strings) {              @Override              public View getView(FlowLayout parent, int position, String s) {                tv = (TextView) mInflater.inflate(R.layout.tv,                    mFlowLayout, false);                tv.setText(s);                return tv;              }            });            break;        }        super.handleMessage(msg);      }    };    @Override    protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.activity_main);      mInflater = LayoutInflater.from(this);      mFlowLayout = (TagFlowLayout) findViewById(R.id.id_flowlayout);      editText = (EditText) findViewById(R.id.edt);      button = (Button) findViewById(R.id.btn);      strings = new ArrayList<>();      button.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {          String aa = editText.getText().toString().trim();          strings.add(aa);          //通知handler更新UI          handler.sendEmptyMessageDelayed(1, 0);        }      });      //流式布局tag的点击方法      mFlowLayout.setOnTagClickListener(new TagFlowLayout.OnTagClickListener() {        @Override        public boolean onTagClick(View view, int position, FlowLayout parent) {          Toast.makeText(MainActivity.this, tv.getText(), Toast.LENGTH_SHORT).show();          return true;        }      });    }

当我们点击确定按钮的时候,通知handler 去更新UI界面

效果图如下:

这样就实现了一个简单的流式布局历史搜索记录

GitHub地址:https://github.com/zhangliyong114/FlowLayoutDemo

(0)

相关推荐

  • 拼多多app怎么一键清空历史搜索记录?

    拼多多搜索自己想要购买商品的名称所以留下了很多搜索记录,想要删除搜索记录,该怎么删除呢?下面我们就来看看详细的教程. 1)点开拼多多APP,首先点击首页界面中的[搜索],随后点击搜索框:(如下图) 2 ...

  • 如何将小米手机全局搜索中的历史搜索记录删除

    当我们在使用小米手机的时候,所有的搜索记录都会被保存下来,如果不想要他人看到这些搜索记录的话,应如何将其删除呢?接下来就由小编来告诉大家.具体如下:1. 第一步,打开手机并在桌面找到设置图标,点击进入 ...

  • 如何查看手机或电脑新浪微博内的历史搜索记录

    日常生活中,我们可以通过微博来查看实时热点,或与网友进行互动,同时我们也可以搜索一些自己感兴趣的东西,那么如何查看历史搜索记录呢?接下来就由小编来告诉大家.一.手机端1. 第一步,打开手机并在桌面上找 ...

  • 如何查看新浪微博里的个人历史搜索记录

    我们通常喜欢看新浪微博,但是有的用户想查看自己的历史搜索记录,怎么操作呢?小编为大家介绍方法.方法一1. 首先,请大家在自己的手机中找到[微博],点击进入,然后选择底部的[发现].2. 第二步,接下来 ...

  • 怎么删除高德地图中的单条历史搜索记录

    今天给大家介绍一下怎么删除高德地图中的单条历史搜索记录的具体操作步骤.1. 首先解锁手机,找到桌面上的高德地图APP,打开.2. 进入主页面后,点击页面右下角的右下角的我的选项.3. 在打开的我的页面 ...

  • 手机百度怎么查看历史搜索记录

    有时候我们在使用手机的时候,想查看历史搜索记录,怎么查看呢,下面来分享一下方法 操作方法 01 第一步打开手机百度,点击进去,如下图所示: 02 第二步进去手机百度界面之后,点击底部我的,选择历史,如 ...

  • 如何在浏览器上查找历史搜索记录

    今天小编教大家"如何在浏览器上查找历史搜索记录".希望对大家有所帮助. 操作方法 01 首先打开电脑在电脑桌面上点击浏览器图标,进入浏览器. 02 进入好到浏览器界面然后点击下图红 ...

  • 新浪微博怎么查看自己的历史搜索记录

    新浪微博如何查看自己的历史搜索记录呢?一起来看看下面的方法吧 操作方法 01 打开浏览器,搜索"新浪微博" 02 搜索到新浪微博官网,点击进入官网 03 进入官网,登陆自己的账号, ...

  • 如何清除vivo浏览器中的历史搜索记录

    在使用vivo浏览器的时候,浏览器会自动记录用户搜索过哪些东西,并生成历史记录保存下来,为了防止自己的搜索记录被别人看到,我们需要定时清理一下,具体应如何操作呢?接下来就由小编来告诉大家.具体如下:1 ...