android ListView各种效果实现总结,持续更新...

浏览:1160 ℃
字体:
发布时间:2013-12-11 11:03:00
来源:
一、ListView圆角:重写ListView的onInterceptTouchEvent方法,通过pointToPosition(x,y)方法判断当前点击位置所对应的项,有三种情况:分别是第一项、最后一项、中间项;其实第一种情况又分为两种情况:列表总共只有一项和列表不止一项;参照下边的代码即可理解;
 
复制代码
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        switch (ev.getAction()) {
        case MotionEvent.ACTION_DOWN:
                int x = (int) ev.getX();
                int y = (int) ev.getY();
                int itemnum = pointToPosition(x, y);
                if (itemnum == AdapterView.INVALID_POSITION)
                        break;                 
                else{
                    if(itemnum==0){ // 选择项为1
                        if(itemnum==(getAdapter().getCount()-1)){// 列表只有一项                                    
                            setSelector(R.drawable.app_list_corner_round);
                        }else{ // 列表不止一项
                            setSelector(R.drawable.app_list_corner_round_top);
                        }
                    }else if(itemnum==(getAdapter().getCount()-1)) // 选择项为最后一项
                            setSelector(R.drawable.app_list_corner_round_bottom);
                    else{                            
                        setSelector(R.drawable.app_list_corner_shape);
                    }
                }
                break;
        case MotionEvent.ACTION_UP:
                break;
        }
复制代码
二、选中项高亮显示,实现ListView选中项高亮显示有两种方法;
 
1、查看ListView的方法setSelection(int index),看样子好像是,但实际试了之后以现不行,既然不行,那就用一个比较笨的方法:自定义adapter,在adapter的getView方法里面设置背景;然后在ListView的onItemClick回调中向adapter传入点击的项,即可设置选中项高亮状态;
 
复制代码
    public void setSelectedposition(int selectedposition) {
        this.selectedposition = selectedposition;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = inflater.inflate(R.layout.item, null);
        if (selectedposition == position) {
            v.setBackgroundColor(Color.parseColor("#36adcf"));
        } else {
            v.setBackgroundColor(Color.TRANSPARENT);
        }
        return v;
    }
复制代码
2、有没有更简单的方法?第一种方法看着觉得有点怪怪的,有点歪门邪道的感觉;另一种的方法是通过selector方法实现;定义一个drawable文件,里面包含一个选择状态:state_activated,然后将这个drawable指定为ListView的item的背景;关于这个状态具体含意不再多说,参见官方api;
 
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/adcf" android:state_activated="true"></item>
    <item android:drawable="@android:color/transparent"/>
</selector>
下面是在代码中的实现(部分代码):
 
listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        getListView().setItemChecked(position, true);
    }
注:上面的方法是ListActivity的方法,此方法对应OnItemClickListener接口中的方法;
 
三、ListView列表项延迟加载
 
我们都知道当ListView上面滚动时,会执行adapter的getView方法,但问题出来了,有时候为了节约资源及解决效率问题,并不需要滚动到某一项就开始加载数据,而是希望滚动停止,或者说滚动速度低于某一个值时才获取数据,下面讨论的就是这种情况下的处理:
 
1、为ListView添加OnScrollListener滚动监听器,此监听器可以获取当前滚动状态及可视条目;
 
复制代码
    public int first = 0; // 第一条可视项目
    public int visi = 0; // 可视条目总数
 
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        first = firstVisibleItem;
        visi = visibleItemCount;
    }
 
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        switch (scrollState) {
        case OnScrollListener.SCROLL_STATE_IDLE: // 滚动完成
            mBusy = false;
            int first = view.getFirstVisiblePosition();
            for (int i = 0; i < visi; i++) { // 设置所有可视条目Tag为null,条目将会自动加载数据
                TextView t = (TextView) view.getChildAt(i);
                if (t.getTag() != null) {
                    t.setText(mStrings[first + i]);
                    t.setTag(null);
                }
            }break;
        case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL: // 正在滚动(手指未离开屏幕)
            mBusy = true;
            break;
        case OnScrollListener.SCROLL_STATE_FLING: // 正在滚动(手指已离开屏幕)
            mBusy = true;
            break;
        }
    }
复制代码
在Adapter中根据mBusy状态,判断是否立即加载数据,重写getView方法;
 
复制代码
        public View getView(int position, View convertView, ViewGroup parent) {
            TextView text;
            if (convertView == null) {
                text = (TextView) mInflater.inflate(android.R.layout.simple_list_item_1, parent, false);
            } else {
                text = (TextView) convertView;
            }
            if (!mBusy) {
                text.setText(mStrings[position]);
                // Tag为空代表当前View的数据已经加载完成
                text.setTag(null);
            } else {
                text.setText("Loading...");
                // 非空的View代表当前View仍然需要加载更多的数据
                text.setTag("cc");
            }
            return text;
        }
    }
复制代码
四、类似聊天记录,自动将新添加的项从底部添加并显示到可见区域,主要是两个属性的设置,如下:
 
复制代码
    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:stackFromBottom="true"       自动显示到列表最底部
        android:transcriptMode="normal" />   设置当显示大量的条目时,希望将最新的item显示到可见区域
复制代码
顺便记录一下输入框点击Enter事件,OnKeyListener(参照下面的代码,可实现输入新消息按下Enter并将新消息添加到列表底部);
 
复制代码
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            switch (keyCode) {
            case KeyEvent.KEYCODE_DPAD_CENTER:
            case KeyEvent.KEYCODE_ENTER:
                // TODO
                return true;
            }
        }
        return false;
    }
复制代码
五、设置部分条目不可用:通常情况下,一个列表中的所有条目都可以使用,也即可以响应点击事件和有点击的效果,但有的情况下,并不希望所有的条目都这样,就可以自定义Adapter,通过条目的相关属性判断是否可用,(disEnabled状态下,默认的分割条不显示)
 
复制代码
        @Override
        public boolean areAllItemsEnabled() {
            return false;
        }
 
        @Override
        public boolean isEnabled(int position) {
            // TODO 通过一定的判断条件设置position条目可用
        }
复制代码
六、ListView点击条目展开条目显示更多信息:这种情况也是比较常见的,最多见的应该是评论,一个评论列表,不同的人,评论的内容长度不同,如果全部显示完,就会显示得参差不齐,但又不能只显示了部分,此时就得添加点击条目查看更多的功能了;
 
  简单说下思路:自定义一个View,继承自FrameLayout,里面有两个TextView,一个是单行的(singleLine),另外一个是多行的(wrap_content);公开一个方法设置多行的TextView的可见状态为VISIBLE或者GONE,在ListView的ItemClick回调中设置当列表条目未展开时,点击条目展开条目,也即显示更多信息;当列表是展开的,点击收起条目;并且通知数据源改变:notifyDataSetChanged;
 
七、在二中说了选中单项的高亮显示,现在来看看多选的高亮显示,同样,多选我这里也知道两种方法;
 
1、同二中第2种方法,定义一个selector,里面包含一个选择状态state_activited,将此drawable设置为ListView的selector或者是直接设置为条目的背景;此种模式类似于4.0之后部分手机短信列表的长按之后进行选择条目然后进行操作删除的效果;
 
        lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); // 设置选择模式
        lv.setMultiChoiceModeListener(new ModeCallback());
复制代码
    private class ModeCallback implements ListView.MultiChoiceModeListener {
        public boolean onCreateActionMode(ActionMode mode, Menu menu) { // 在ActionBar上创建按钮
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.list_select_menu, menu);
            mode.setTitle("Select Items");
            return true;
        }
 
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return true;
        }
 
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            switch (item.getItemId()) {
              // TODO 点击某一个按钮的回调
            }
            return true;
        }
 
        public void onDestroyActionMode(ActionMode mode) {
        }
 
        public void onItemCheckedStateChanged(ActionMode mode, int position,
                long id, boolean checked) { // 选择项改变回调事件,通过此方法获取选择了哪些项
            final int checkedCount = getListView().getCheckedItemCount();
            }
        }
    }
复制代码
2、第二种方法比较简单些,适用范围更加广泛,上一种方法在2.x的版本上运行会出错,因为MultiChoiceMode是高版本上的新的一个接口;对于低版本的手机,下面这种方法更加适用(Item的背景或者selector同上);
 
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
如果需要获取此种方法的选择项,就需要在OnItemClickListener的回调方法中进行判断,即每点击一项,改变当前checked的值,最后再获取结果;
 
 
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛銈呭閺屾盯顢曢敐鍡欙紭闂侀€炲苯鍘搁柣鎺炲閹广垹鈹戠€n亞顦板銈嗘尵婵厼危閸楃偐鏀介柣鎰摠缂嶆垿鏌涘顒夊剰瀹€锝呯仢閳诲酣骞嬪┑鎰棥闂備胶顫嬮崟鍨暦闂佹娊鏀遍崹鍫曞Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戭槮妞わ富鍨堕、姘额敇閻樻彃鐏婃繝鐢靛У閼归箖宕橀埀顒€顪冮妶鍡樺暗闁哥姵鎹囧畷銏ゅ箹娴e厜鎷洪梺纭呭亹閸嬫盯宕濆Δ鍛厸闁告侗鍠氶‖濂告煃椤忓懏灏︽慨濠勭帛閹峰懘宕ㄩ棃娑氱Ш妞ゃ垺鐗犲畷鍗炩槈濡⒈鍞堕梻浣哥秺濡法绮堟笟鈧幃锟犲灳閹颁胶鍞甸柣鐘烘鐏忋劑宕濋悢鍏肩厸闁糕槅鍘鹃悾鐢告煛鐏炲墽娲村┑锛勫厴婵偓闁斥晛鍟拌ぐ鍥⒒娴h櫣甯涚紒瀣箻瀹曟洖鐣烽崶顭戞綗闂佽宕橀褏澹曢崗鑲╃闁糕剝锚娣囶垶鏌涢悙鑼Ш婵﹥妞介弻鍛存倷閼艰泛顏繝鈷€灞芥珝闁哄本鐩幃銏ゆ煥鐎n亙娣俊鐐€戦崹鍝勎涢崘顔衡偓浣割潨閳ь剟骞冮埡鍜佹晝妞ゎ偒鍘奸ˉ姘舵⒑閼姐倕鏋戦柣鐔村劤閳ь剚鍑归崢鍓у垝閸儱绀冩い蹇撴閿涙粓鏌i悩鍙夌┛閻忓繑鐟﹂弲鍫曟晜缁涘顔旈梺缁樺姈瑜板啴寮抽敐澶嬬厱闁冲搫顑囩弧鈧悗瑙勬磸閸旀垿銆佸☉姗嗘僵妞ゆ帒鍊搁杈ㄧ節绾板纾块柛瀣灴瀹曟劙寮介鐐殿唶闂佺粯鍔﹂崜姘跺矗韫囨稒鐓i煫鍥风到娴滅偞銇勯埡鍌滃弨闁哄本娲濈粻娑㈠即閻愭劖鐩弻锟犲焵椤掍胶顩烽悗锝庡亞閸樹粙姊洪悷鎵憼缂佽鍟蹇撯攽鐎n偆鍘遍梺鍦劋閺屻劑銆傞懖鈺冪<缂備焦岣垮ú瀵糕偓娈垮枛閻栧ジ鐛€n亖鏀介柟閭︿簽绾炬儳鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垶纰嶅畷鍙夋叏濡炶浜鹃悗娈垮櫘閸嬪﹪鐛Ο鑲╃<婵☆垳绮鐔兼⒒娴h姤纭堕柛锝忕畵楠炲繘鏁撻敓锟�/QQ 1602007闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛濠傛健閺屻劑寮崼鐔告闂佺ǹ顑嗛幐鍓у垝椤撶偐妲堟俊顖濐嚙濞呇囨⒑濞茶骞楅柣鐔叉櫊瀵鎮㈤崨濠勭Ф婵°倧绲介崯顖烆敁瀹ュ鈷戦柟鑲╁仜閳ь剚鐗犲畷婵嬪冀椤撶倣锕傛煕閺囥劌鐏犻柛鎰ㄥ亾婵$偑鍊栭崝锕€顭块埀顒傜磼椤旇偐鍩f慨濠傛惈鐓ら悹鍥ㄥ絻缁犲搫顪冮妶鍐ㄥ闁绘鎹囬悰顔藉緞瀹€鈧惌娆愮箾閸℃ê鍔ら柟顔藉灦缁绘繈濮€閿濆棛銆愰梺鎸庢穿缁犳挸鐣烽姀鐘嗘椽顢旈崨顏呭闂備礁鎲$换鍌溾偓姘煎墴瀵啿鈻庨幘瀵稿幗濠德板€愰崑鎾翠繆椤愶絿鎳囩€规洘娲熼、鏇㈡晜鐟欙絾瀚藉┑鐐舵彧缁插潡骞婇幘娲绘晪婵犲﹤鎳愮壕濂告偣閸ャ劌绲婚柍褜鍓欓悘婵嬫偩閻戣棄绠涢柡澶婄仢缁愭稒绻濋悽闈浶㈤悗姘槻鐓ら柟闂寸劍閳锋垿鎮归崶锝傚亾瀹曞洠鍋撴繝姘厓鐟滄粓宕滈悢濂夊殨闁靛⿵濡囬々鐑芥倵閿濆骸浜為柛妯挎閳规垿鍩ラ崱妤冧淮濠电偛顦板ú婊堟嚍闁秴閿ゆ俊銈勮兌閸橀亶妫呴銏″闁规瓕顕ч敃銏″鐎涙ḿ鍘梺鎼炲劀閸愬彞绱旀俊銈囧Х閸嬫稑煤椤撯偓鈧線寮崼婵嗚€垮┑鐐叉閸ㄧ敻鐛崱娑欌拻闁稿本鐟чˇ锕傛煙绾板崬浜伴柟顖氭湰瀵板嫮浠﹂幆褍绨ユ繝鐢靛█濞佳兾涘☉銏犳辈闁挎洖鍊归悡娆撴煟閹寸伝顏堟倶瀹ュ鐓曟い鎰靛亗闁垱顨ラ悙瀵稿ⅹ閼挎劖銇勯幒鍡椾壕闂佽娴氭禍顏堝蓟閿熺姴骞㈡繛鍡楃箣缁爼姊虹€圭媭娼愰柛銊ユ健楠炲啫鈻庤箛锝呮櫊濡炪倖鏌ㄩ崥瀣敊瀹ュ應鏀介柣妯诲墯閸熷繘鏌涢悩鎰佹疁妤犵偞鍔欓獮搴ㄦ寠婢跺瞼鏆柣鐔哥矋濡啴鎮伴鍢夌喖宕楅悡搴e酱闂備浇鍋愰埛鍫ュ礈濞戙垹姹插ù鐓庣摠閳锋帒霉閿濆懏鍟為柛鐔哄仦缁绘稓鎷犺閻g數鈧娲栫紞濠囧蓟閸℃鍚嬮柛娑卞灲缁遍亶姊绘担鍛婂暈婵炶绠撳畷褰掓焼瀹ュ棗浜楅梺鎸庣箓椤﹂亶宕i幘缁樼厱闁靛绲芥俊浠嬫倶韫囧骸宓嗛柟顔肩秺楠炲洭宕滄担铏规闁诲孩顔栭崳顕€宕戞繝鍌滄殾濠靛倻枪鍞梺鎸庢椤鈧俺妫勯埞鎴︽倷鐎涙ê闉嶉梺绯曟櫅閸熸潙鐣烽幋锕€绠婚悗闈涙憸椤旀洘绻涙潏鍓у埌闁哥喎娼″畷銉ノ熺悰鈩冾潔濠碘槅鍨辩划宥呂涢崘銊ф殾妞ゅ繐鎳忔刊鎾偡濞嗗繐顏柣婵囶殜濮婂宕掑▎鎴М闂佽绁撮崜婵堢箔閻旇偤鏃堝川椤撶姷宕舵繝娈垮枟鏋紓鍫滃嵆閸┾偓妞ゆ巻鍋撻柟铏锝嗙節濮橆儵銊╂煥閺冣偓閸庢娊鐛幇鐗堚拻濞达綀顫夐崑鐘绘煕鎼搭喖娅嶇€殿喗褰冮埥澶愬閻樻彃娈ら梻浣告惈閸燁偊鎮ф繝鍥ㄥ亗闁告劦鍠楅悡鐔兼煟閺冨伋褰捤夌€n喖鏋侀柛顐犲劜閳锋垿鏌涘┑鍡楊伂閻庢碍澹嗙槐鎺撳緞鎼搭喗缍堟繛锝呮搐閿曨亪骞冨⿰鍫熷癄濠㈠厜鏂傞崝鎴﹀蓟閺囩喎绶炴繛鎴欏灪椤庡秹姊烘导娆掝吅缂傚秳绶氬濠氭晲婢跺浜滈梺鍛婄缚閸庢娊鎮℃担绯曟斀闁绘﹩鍠栭悘顏堟煥濮樿埖鎳氶柣鎰節缁诲棝鏌曢崼婵囧櫤闁革綀娅g槐鎺楁偐閸愬弶璇炲┑顔硷功缁垶骞忛崨鏉戝窛闂傚牊绋掔拹锟犳煙楠炲灝鐏叉鐐村笒铻栭柍褜鍓熼幃锟犲即閵忥紕鍘卞銈嗗姧缁叉寧淇婇崶顒佺厸閻庯綆鍋呴ˉ鍫ユ煛瀹€瀣瘈鐎规洘锕㈡俊鎼佸Ψ閵忕姳澹曢悷婊呭鐢帞绮eΔ鍛厵闁规鍠栭。濂告煕鐎c劌濡介柕鍥у瀵粙鎮介棃娑樼厒闂備礁鎼鍥窗閺嶎厼绠栨俊銈傚亾妞ゎ偅绻堥幃娆擃敆閳ь剟顢旈敓锟�
>更多相关文章
24小时热门资讯
24小时回复排行
闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞妞ゆ帒顦伴弲顏堟偡濠婂啰绠婚柛鈹惧亾濡炪倖甯婇懗鍫曞煝閹剧粯鐓涢柛娑卞枤閻瞼绱掗鍛籍闁诡喓鍨介幊鏍倻濡椿妫冮梺绯曟杹閸嬫挸顪冮妶鍡楃瑨闁哥姵宀稿铏鐎涙ǚ鎷洪柣鐘叉处瑜板啴顢楅姀銈嗙厱闁归偊鍓﹂悡鍏碱殽閻愯尙绠婚柡浣规崌閺佹捇鏁撻敓锟� 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴闇夐柨婵嗙墛椤忕姷绱掗埀顒佺節閸屾鏂€闂佺粯蓱瑜板啴鍩€椤掆偓椤曨厾妲愰幘鎰佹僵閺夊牄鍔岄弸鎴︽⒑绾懏褰х紒鐘冲灦椤㈠﹪姊绘担绛嬫綈濠㈢懓妫欓弲璺何旈崨顓狅紮闂佺粯鍨兼慨銈夋偂閻斿吋鐓忛煫鍥ь儏閻忣亪鏌¢崱蹇旀珚闁哄矉缍侀弫鎰板川椤栨氨鍘芥繝娈垮枛閿曘儱顪冮挊澹╂盯宕橀妸銏☆潔濠殿喗枪娴滎剟寮舵禒瀣拻濞达絽鎳欒ぐ鎺撴櫇闁靛鍎嶅ú顏勫唨妞ゆ帒鍊风純鏇炩攽閻樻鏆俊鎻掓嚇瀹曞綊鎮界粙璺紱闂佸綊鍋婇崕闈涒槈閵忊晜鏅┑鐐村灦閻楁梻鑺辨繝姘拺閻熸瑥瀚粈鍐╃箾婢跺鈯曠紒鍌涘浮閺佸啴宕掑☉姘箞闂備焦瀵х换鍌炲箠韫囨稑绠熼柛婵勫劤绾惧ジ寮堕崼娑樺婵炴惌鍠楅妵鍕閿涘嫭鍣伴梺鐟扮-閸嬨倖淇婇悜钘壩ㄧ憸婵堟閿曞倹鈷掗柛灞剧懅椤︼箓鏌熺喊鍗炰喊闁诡垰鏈鍕暆閳ь剛绮堟繝鍌樷偓鎺戭潩閿濆懍澹曢柣搴ゎ潐濞叉ê顪冩禒瀣瀬鐎广儱顦粈瀣煏婵炲灝鍔欏瑙勬礋濮婃椽骞愭惔锝囩暤婵°倗濮撮幉锛勭矉瀹ュ應鍫柛鏇楁櫃缁ㄥ妫呴銏″偍闁稿氦灏欓埀顒佺啲閹凤拷
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑娑⑺囬悽绋垮瀭濡わ絽鍟粻娑樏归敐鍛础缂佸绀侀埞鎴︽偐閸偅姣勬繝娈垮枤閺佸骞婂┑瀣鐟滃秹藟濮橆兘鏀介柣妯虹-椤f煡鏌i幘璺烘灈闁哄矉绻濆畷姗€濡搁妷銏犱壕闁告縿鍎查弳婊堟煕閹捐尪鍏岀痪鎯с偢閺岋絽螣閾忕櫢绱炴繝鈷€灞奸偗闁哄苯绉堕幉鎾礋椤愩倓绱濋梻浣筋嚃閸犳帡寮查悩鑽ゅ祦闁规崘顕х粻鎶芥煙閻愵剚鍎楅柛鐐村絻閳规垿鏁嶉崟顐℃澀闂佺ǹ锕ラ悧鏇犲弲濠电娀娼уú銏$閸儲鐓欓梻鍌氼嚟椤︼妇绱掗悩闈涗槐闁哄本娲樼换娑㈠垂椤旂厧肖婵犵數鍋熼鏇㈠礉閹达箑钃熸繛鎴欏灩閻掓椽鏌涢幇顔间壕闁伙綀娉涢—鍐Χ鎼粹€茶埅婵炲瓨绮犳禍婊堬綖韫囨拋娲敂閸曨亞鐐婇梻渚€娼чˇ顓㈠磿濞差亜鐒垫い鎺嶇劍瀹曞矂鏌″畝鈧崰鏍х暦濞嗘挸围闁糕剝顨忔导锟� 闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞妞ゆ帒顦伴弲顏堟偡濠婂啰绠婚柛鈹惧亾濡炪倖甯婇懗鍫曞煝閹剧粯鐓涢柛娑卞灠瀛濋梺浼欑到閸㈣尪鐏掗梺鐓庮潟閸婃鎯侀崼婵冩斀妞ゆ梹鏋绘笟娑㈡煕濡粯鍊愭鐐村姍瀹曟﹢顢欑憴锝嗗闂備礁鎲$粙鎴︽晝閵夛箑绶為柛鏇ㄥ灡閻撴洟鐓崶銊︹拻闁靛棙甯¢弻鐔肩嵁閸喚浼堥悗瑙勬礀瀹曨剟鍩㈡惔銊ョ疀妞ゆ帊鑳堕埀顒勭畺濮婄粯鎷呴崨濠冨創闂佺ǹ锕ょ紞濠囥€侀弽褉鏋庨柟鎯у暱閹偤姊洪崫鍕偍闁搞劍妞介幃锟犳偄閸忚偐鍘棅顐㈡处濞叉牕鐡俊鐐€戦崕杈╂崲濮椻偓瀵鍩勯崘鈺侇€撻梺鍛婄缚閸庢盯鏁愭径瀣幍婵炴挻鑹鹃悘婵囦繆閸忕浜滄い鎰剁悼閻帞鈧娲栧畷顒冪亙闂侀€炲苯澧撮柨婵堝仱椤㈡洟鏁傜憴锝嗗闂備礁鎲$粙鎴︹€﹂埀顒勬煙鐎电ǹ校闁哄棙绮嶆穱濠囧Χ閸涱厽娈查悗瑙勬礀瀵墎鎹㈠☉銏犵婵炲棗绻掓禒鑲╃磽娴e搫顎撶紓宥勭窔瀵鏁愭径濠勭杸濡炪倖鎸鹃崰鎾剁矙閸ヮ剚鈷掗柛灞惧嚬濡插摜绱掓径濠傤暢婵″弶鍔欓獮妯尖偓闈涙憸閹虫繈姊洪幖鐐插妧闁告洦鍘洪柇顖滅磽閸屾艾鈧绮堟笟鈧棟闂侇剙绉寸粻鐘绘煙閻愵剚銇熼柡浣割儔閺屻劌鈹戦崱姗嗘¥缂備讲妾ч崑鎾寸節濞堝灝鏋熼柨鏇楁櫊瀹曘垽宕楅懖鈺婃锤濠电姴锕ら悧濠囧煕閹寸姷纾奸悗锝庡幗绾墎绱掗悩鍐测枙闁哄本绋戣灒闁绘ɑ褰冮弳濠囨煛鐎n偅顥堥柣鎿冨亰瀹曞爼濡歌婵洭姊洪幎鑺ユ暠闁搞劌娼″璇测槈濡攱鏂€闂佺硶鍓濋〃蹇旂婵傚憡鈷戦柛婵嗗椤ョ偤鏌i悢鍙夋珚鐎殿喛顕ч埥澶娾枎閹寸姷妲囬梻浣呵归張顒傜矙閺嶎偅鍏滈柍褜鍓涚槐鎾诲磼濞嗘垼绐楅梺鍝ュУ閻楃娀骞冭楠炴ḿ鎷犻崣澶屸偓顒勬⒑閻熸澘鈷旂紒顕呭灦瀵煡骞栨担鍦弳闂佺粯娲栭崐鍦偓姘炬嫹
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2025 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();