最近在开发项目的时候,有一个需求是展示历史搜索记录,展示的样式是流式布局(就是根据内容自动换行) 。在网上看到了一个不错的类库跟大家分享一下
首先在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"><EditTextandroid:id="@+id/edt"android:layout_width="match_parent"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="确定" /><ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"><com.zhy.view.flowlayout.TagFlowLayoutandroid: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() {@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case 1:mFlowLayout.setAdapter(new TagAdapter<String>(strings) {@Overridepublic 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);}};@Overrideprotected 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() {@Overridepublic void onClick(View v) {String aa = editText.getText().toString().trim();strings.add(aa);//通知handler更新UIhandler.sendEmptyMessageDelayed(1, 0);}});//流式布局tag的点击方法mFlowLayout.setOnTagClickListener(new TagFlowLayout.OnTagClickListener() {@Overridepublic boolean onTagClick(View view, int position, FlowLayout parent) {Toast.makeText(MainActivity.this, tv.getText(), Toast.LENGTH_SHORT).show();return true;}});}当我们点击确定按钮的时候,通知handler 去更新UI界面
效果图如下:
【Android流式布局如何实现历史搜索记录】这样就实现了一个简单的流式布局历史搜索记录
GitHub地址:https://github.com/zhangliyong114/FlowLayoutDemo
推荐阅读
- Android安装apk文件并适配Android 安卓怎么安装apk文件
- Android startActivityForResult实例详解
- Android 12 Beta下载地址
- word2010布局在哪里 word的布局在哪里
- word版式选项卡 word2007布局选项卡
- 在word 文档中 表格布局在哪个位置 word表格布局在哪里
- 电脑上的页面布局在哪里 页面布局图在电脑上怎么做
- android基于socket的局域网内服务器与客户端加密通信
- 苹果14系统怎么设置桌面布局
- android用什么开发 android用什么开发工具