Android பாய்வு தளவமைப்பு FlowLayout, குறிச்சொல்லின் தளவமைப்பு
Android Flow Layout Flowlayout
Android ஸ்ட்ரீமிங் தளவமைப்பு, தயாரிப்பு தேர்வு லேபிள்களுக்கு ஏற்ற ஒற்றை தேர்வு, பல தேர்வு போன்றவற்றை ஆதரிக்கிறது.
##அம்சங்கள்
- செட்அடாப்டர் வடிவத்தில் தரவை உட்செலுத்துங்கள்
- செக்பாக்ஸைப் போன்ற லேபிள் தேர்வின் சுவிட்சை முடிக்க தேர்வாளரை நேரடியாக பின்னணிக்கு அமைக்கவும்
- தேர்ந்தெடுக்கப்பட்ட குறிச்சொற்களின் எண்ணிக்கையைக் கட்டுப்படுத்த ஆதரவு, அதாவது: ஒற்றை தேர்வு, பல தேர்வு
- ஆதரவு setOnTagClickListener, குறிச்சொல் சொடுக்கும் போது திரும்ப அழைத்தல்
- SetOnSelectListener ஐ ஆதரிக்கவும், குறிச்சொல் தேர்ந்தெடுக்கப்பட்டால் மீண்டும் அழைக்கவும்
- ஆதரவு adapter.notifyDataChanged
- செயல்பாடு மீண்டும் கட்டமைக்கப்பட்ட பிறகு (அல்லது சுழற்றப்பட்டது), தேர்ந்தெடுக்கப்பட்ட நிலை தானாகவே சேமிக்கப்படும்
## விளைவு படம்
பயன்பாடு
max_select
அறிக்கை
தளவமைப்பு கோப்பில் அறிவிக்கப்பட்டுள்ளது:
#Adapter @Override public void onSelected(int position, View view) { super.onSelected(position, view) } @Override public void unSelected(int position, View view) { super.unSelected(position, view) }
ஆதரவு பண்புக்கூறுகள்:
TagAdapter
: -1 என்றால் வரம்பற்ற தேர்வு, எண்> = 1 என்றால் கட்டுப்பாட்டு தேர்வு குறிச்சொற்களின் எண்ணிக்கை
நிலை = சரிபார்க்கப்பட்டதன் மூலம் தேர்ந்தெடுப்பதையும் ரத்து செய்வதையும் ஆதரிக்கிறது, மேலும் நீங்கள் தேர்ந்தெடுக்கப்பட்ட மற்றும் தேர்வுசெய்யப்படாத அடாப்டரில் காட்சியை தனித்தனியாக கையாளலாம்.
### தரவை அமைக்கவும்
package com.zhy.view.flowlayout import android.view.View import java.util.ArrayList import java.util.Arrays import java.util.List public abstract class TagAdapter<T> { private List mTagDatas private OnDataChangedListener mOnDataChangedListener public TagAdapter(List datas) { mTagDatas = datas } public TagAdapter(T[] datas) { mTagDatas = new ArrayList(Arrays.asList(datas)) } static interface OnDataChangedListener { void onChanged() } void setOnDataChangedListener(OnDataChangedListener listener) { mOnDataChangedListener = listener } public int getCount() { return mTagDatas == null ? 0 : mTagDatas.size() } public void notifyDataChanged() { mOnDataChangedListener.onChanged() } public T getItem(int position) { return mTagDatas.get(position) } public abstract View getView(FlowLayout parent, int position, T t) }
ListView மற்றும் பிற பயன்பாட்டைப் போன்ற getView இல் திரும்ப அழைத்தல்.
தேர்ந்தெடுக்கப்பட்ட மாநிலத்திற்கு
public void setAdapter(TagAdapter adapter) { mTagAdapter = adapter mTagAdapter.setOnDataChangedListener(this) changeAdapter() } private void changeAdapter() { removeAllViews() TagAdapter adapter = mTagAdapter TagView tagViewContainer = null for (int i = 0 i this, i, adapter.getItem(i)) tagView.setDuplicateParentStateEnabled(true) tagViewContainer.setLayoutParams(tagView.getLayoutParams()) tagViewContainer.addView(tagView) addView(tagViewContainer) } } @Override public void onChanged() { changeAdapter() }
ஒரு பின்னணியை அமைக்கவும், மேலே உள்ள நிலை Android: state_checked, மற்றொன்று இயல்பானது. தளவமைப்பு கோப்புகளை எழுத நான் மிகவும் மெதுவாக இருக்கிறேன். விளைவைக் கட்டுப்படுத்தவும், விளைவை அமைக்கவும் மாற்றவும் ஒரு கொத்து குறியீட்டை நான் எவ்வாறு எழுத முடியும், இது நேர டோட்டா இல்லையா?
state_checked ஐ நம்பவும் முடியாது, மேலும் அதை கீழேயுள்ள கால்பேக்கில் அமைக்கவும்:
dependencies { compile 'com.hyman:flowlayout-lib:1.1.2' }
###நிகழ்வு
<com.zhy.view.flowlayout.TagFlowLayout android:id='@+id/id_flowlayout' zhy:max_select='-1' android:layout_width='fill_parent' android:layout_height='wrap_content' android:padding='20dp'> </com.zhy.view.flowlayout.TagFlowLayout>
லேபிள் சொடுக்கும் போது திரும்ப அழைத்தல்.
mFlowLayout.setAdapter(new TagAdapter<String>(mVals) { @Override public View getView(FlowLayout parent, int position, String s) { TextView tv = (TextView) mInflater.inflate(R.layout.tv, mFlowLayout, false) tv.setText(s) return tv } })
பல குறிச்சொற்கள் தேர்ந்தெடுக்கப்படும்போது திரும்பப்பெறுதல்.
## முன் தேர்வு செய்யப்பட்ட பொருள் தேர்வு
<?xml version='1.0' encoding='utf-8'?> <selector xmlns:android='http://schemas.android.com/apk/res/android'> <item android:color='@color/tag_select_textcolor' android:drawable='@drawable/checked_bg' android:state_checked='true'></item> <item android:drawable='@drawable/normal_bg'></item> </selector>
|_+_|
mFlowLayout.setOnTagClickListener(new TagFlowLayout.OnTagClickListener() { @Override public boolean onTagClick(View view, int position, FlowLayout parent) { Toast.makeText(getActivity(), mVals[position], Toast.LENGTH_SHORT).show() return true } })
1) டேக்அடாப்டர்
எனவே முதலில் நாம் ஒரு அடாப்டரை வைத்திருக்க வேண்டும், இது
mFlowLayout.setOnSelectListener(new TagFlowLayout.OnSelectListener() { @Override public void onSelected(Set<Integer> selectPosSet) { getActivity().setTitle('choose:' + selectPosSet.toString()) } })
//Pre-set selected mAdapter.setSelectedList(1,3,5,7,8,9) //Get all selected pos collection flowLayout.getSelectedList()
- 1
- இரண்டு
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- பதினொன்று
- 12
- 13
- 14
- பதினைந்து
- 16
- 17
- 18
- 19
- இருபது
- இருபத்து ஒன்று
- 22
- 2. 3
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 3. 4
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- நான்கு. ஐந்து
- 46
- 47
- 48
- 49
- ஐம்பது
- 51
(2) TagFlowLayout க்கான அடாப்டருக்கான ஆதரவு
ஒரு செட்அடாப்டர் முறையை வழங்குவதே மிக முக்கியமான விஷயம்:
Related source code examples
- 1
- இரண்டு
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- பதினொன்று
- 12
- 13
- 14
- பதினைந்து
- 16
- 17
- 18
- 19
- இருபது
- இருபத்து ஒன்று
- 22
- 2. 3
- 24
- 25
- 26
- 27
- 28
- 29
மூல குறியீடு பதிவிறக்க முகவரி: https://github.com/hongyangAndroid/FlowLayout