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