使用TagFlowLayout实现搜索界面推荐词
鸿神的TagFlowLayout确实很方便,首先要推荐一下:
GitHub - hongyangAndroid/FlowLayout: [不再维护]Android流式布局,支持单选、多选等,适合用于产品标签等。[不再维护]Android流式布局,支持单选、多选等,适合用于产品标签等。. Contribute to hongyangAndroid/FlowLayout development by creating an account on GitHub.
https://github.com/hongyangAndroid/FlowLayout先上完成之后的Demo效果图

1.引用方式
implementation 'com.hyman:flowlayout-lib:1.1.2'
2.界面布局
3.代码逻辑
含EditText设定的drawableRight的点击事件实现方式
public class MainActivity extends Activity {private EditText mEdittext;private String[] mVals = new String[]{"Hello", "Android", "Weclome Hi ", "Button", "TextView", "Hello","Android", "Weclome", "Button ImageView", "TextView", "Helloworld","Android", "Weclome Hello", "Button Text", "TextView"};private TagFlowLayout mFlowLayout;private LayoutInflater mInflater;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mFlowLayout = (TagFlowLayout)findViewById(R.id.id_flowlayout);mEdittext = (EditText)findViewById(R.id.edit);mInflater = LayoutInflater.from(this);//为TagFlowLayout设置Adapter,展示推荐词mFlowLayout.setAdapter(new TagAdapter(mVals){@Overridepublic View getView(FlowLayout parent, int position, String s){TextView tv = (TextView) mInflater.inflate(R.layout.tv, mFlowLayout, false);tv.setText(s);return tv;}});//实现TagFlowLayout的Tag点击事件,点击Tag拾取到搜索框mFlowLayout.setOnTagClickListener(new TagFlowLayout.OnTagClickListener() {@Overridepublic boolean onTagClick(View view, int position, FlowLayout parent) {Toast.makeText(MainActivity.this, mVals[position], Toast.LENGTH_SHORT).show();mEdittext.setText(mVals[position]);mEdittext.setSelection(mVals[position].length());return true;}});//实现点击输入框的drawableRight进行清空操作,点击其它方位图片的事件写法类似mEdittext.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {Drawable drawable = mEdittext.getCompoundDrawables()[2];if (drawable == null){return false;}if (event.getAction() != MotionEvent.ACTION_UP){return false;}if (event.getX() > mEdittext.getWidth() - mEdittext.getPaddingRight() - drawable.getIntrinsicWidth()){mEdittext.setText("");}return false;}});}@Overrideprotected void onResume() {super.onResume();Log.e("Demo","test activity onResume");}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
