精华内容
下载资源
问答
  • 这是一个很不错的搜索框,简单易懂 感觉样子还可以 ,总之还不错啦,你可以根据你的需求改
  • 鄙人,反复研究qq动画,虽未能有所成,但是一些基本的也都研究明白了,比如手机QQ里的搜索框点击效果,我反复观察,发现居然是一个动画效果。这里是由本人亲手写的,代码简单明了,在模拟器上一跑便知。
  • 高仿android版QQ搜索框向上滑动动画效果,代码简单易懂。。。自己在项目中遇到这个功能,网上查不到,此demo希望帮助一些需要的童鞋少走弯路。。。
  • * ,搜索框的提示语 */ public SearchUtils(Activity activity, View rlTopTitle, final View llFather, String strHint, TextWatcher textWatcher) { super(); this.mActivity = activity; this....

    先看效果:


    一、

    主要实现的代码已经封装好,代码如下:

    package com.jingxinlawyer.lawchat.utils;
    
    import java.util.Timer;
    import java.util.TimerTask;
    
    import com.jingxinlawyer.lawchat.R;
    
    import android.app.Activity;
    import android.content.Context;
    import android.graphics.Rect;
    import android.graphics.drawable.BitmapDrawable;
    import android.text.TextWatcher;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup.LayoutParams;
    import android.view.animation.Animation;
    import android.view.animation.TranslateAnimation;
    import android.view.animation.Animation.AnimationListener;
    import android.view.inputmethod.InputMethodManager;
    import android.widget.AutoCompleteTextView;
    import android.widget.PopupWindow;
    import android.widget.TextView;
    
    /**
     * 搜索时title的显示与隐藏
     * 
     * @author zhang,qq:174901906
     * 
     */
    public class SearchUtils {
    
    	private Activity mActivity;
    	private View searchView;
    	private AutoCompleteTextView ediSearch;
    	private View alphaView;
    	private TextView tvCancle;
    	private PopupWindow popupWindow;
    	private int moveHeight;
    	private int statusBarHeight;
    	private View fatherView;// 界面的跟布局
    	private View topTitleView;// 标题栏布局
    
    	/**
    	 * 
    	 * @param activity
    	 * @param rlTopTitle
    	 *            ,标题栏布局
    	 * @param llFather
    	 *            ,界面的跟布局
    	 * @param textWatcher
    	 *            ,文本框监听
    	 * @param strHint
    	 *            ,搜索框的提示语
    	 */
    	public SearchUtils(Activity activity, View rlTopTitle, final View llFather,
    			String strHint, TextWatcher textWatcher) {
    		super();
    		this.mActivity = activity;
    		this.topTitleView = rlTopTitle;
    		this.fatherView = llFather;
    		initViews(strHint);
    		initListener(textWatcher);
    	}
    
    	private void initListener(TextWatcher textWatcher) {
    		// TODO Auto-generated method stub
    		alphaView.setOnClickListener(onClick);
    		tvCancle.setOnClickListener(onClick);
    		ediSearch.addTextChangedListener(textWatcher);
    	}
    
    	private void initViews(String strHint) {
    		LayoutInflater mInflater = LayoutInflater.from(mActivity);
    		searchView = mInflater.inflate(R.layout.item_popup_search, null);
    
    		ediSearch = (AutoCompleteTextView) searchView
    				.findViewById(R.id.edi_search);
    		ediSearch.setHint(strHint);
    		ediSearch.setFocusable(true);
    		alphaView = searchView.findViewById(R.id.popup_window_v_alpha);
    		tvCancle = (TextView) searchView.findViewById(R.id.tvCanale);
    
    		popupWindow = new PopupWindow(searchView, LayoutParams.MATCH_PARENT,
    				LayoutParams.MATCH_PARENT);
    		popupWindow.setFocusable(true);
    		popupWindow.setOutsideTouchable(true);
    		popupWindow.setTouchable(true);
    		popupWindow.setBackgroundDrawable(new BitmapDrawable());
    	}
    
    	public void showSearchBar() {
    		getStatusBarHeight();
    		moveHeight = topTitleView.getHeight();
    		Animation translateAnimation = new TranslateAnimation(0, 0, 0,
    				-moveHeight);
    		translateAnimation.setDuration(300);
    		fatherView.startAnimation(translateAnimation);
    		translateAnimation.setAnimationListener(new AnimationListener() {
    
    			@Override
    			public void onAnimationStart(Animation arg0) {
    			}
    
    			@Override
    			public void onAnimationRepeat(Animation arg0) {
    
    			}
    
    			@Override
    			public void onAnimationEnd(Animation arg0) {
    				TranslateAnimation anim = new TranslateAnimation(0, 0, 0, 0);
    				fatherView.setAnimation(anim);
    				topTitleView.setVisibility(View.GONE);
    				topTitleView.setPadding(0, -moveHeight, 0, 0);
    
    				popupWindow.showAtLocation(fatherView, Gravity.CLIP_VERTICAL,
    						0, statusBarHeight);
    				openKeyboard();
    			}
    		});
    	}
    
    	OnClickListener onClick = new OnClickListener() {
    
    		@Override
    		public void onClick(View v) {
    			// TODO Auto-generated method stub
    			switch (v.getId()) {
    			case R.id.popup_window_v_alpha:
    				dismissPopupWindow();
    				break;
    			case R.id.tvCanale:
    				dismissPopupWindow();
    				break;
    			}
    		}
    	};
    
    	private void dismissPopupWindow() {
    		if (popupWindow != null && popupWindow.isShowing()) {
    			popupWindow.dismiss();
    			resetUI();
    		}
    	}
    
    	private void getStatusBarHeight() {
    		Rect frame = new Rect();
    		mActivity.getWindow().getDecorView()
    				.getWindowVisibleDisplayFrame(frame);// 这里得到的是除了系统自带显示区域之外的所有区域,这里就是除了最上面的一条显示电量的状态栏之外的所有区域
    		statusBarHeight = frame.top; // 这里便可以得到状态栏的高度,即最上面一条显示电量,信号等
    
    	}
    
    	/**
    	 * 展开键盘
    	 */
    	private void openKeyboard() {
    		Timer timer = new Timer();
    		timer.schedule(new TimerTask() {
    			@Override
    			public void run() {
    				InputMethodManager imm = (InputMethodManager) mActivity
    						.getSystemService(Context.INPUT_METHOD_SERVICE);
    				imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
    			}
    		}, 0);
    	}
    
    	private void resetUI() {
    		topTitleView.setPadding(0, 0, 0, 0);
    		topTitleView.setVisibility(View.VISIBLE);
    		Animation translateAnimation = new TranslateAnimation(0, 0,
    				-moveHeight, 0);
    		translateAnimation.setDuration(300);
    		fatherView.startAnimation(translateAnimation);
    		translateAnimation.setAnimationListener(new AnimationListener() {
    
    			@Override
    			public void onAnimationStart(Animation arg0) {
    
    			}
    
    			@Override
    			public void onAnimationRepeat(Animation arg0) {
    
    			}
    
    			@Override
    			public void onAnimationEnd(Animation arg0) {
    				TranslateAnimation anim = new TranslateAnimation(0, 0, 0, 0);
    				fatherView.setAnimation(anim);
    			}
    		});
    	}
    }
    


    二、
    点击搜索框后的效果的布局:



    代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#B0000000"
        android:orientation="vertical" >
    
        <LinearLayout
            android:id="@+id/ll_location"
            android:layout_width="match_parent"
            android:layout_height="@dimen/item_heght"
            android:background="@color/bg_gray"
            android:gravity="center_vertical"
            android:orientation="horizontal" >
    
            <AutoCompleteTextView
                android:id="@+id/edi_search"
                android:layout_width="0dp"
                android:layout_height="32dp"
                android:layout_marginLeft="13dp"
                android:layout_marginRight="13dp"
                android:layout_weight="1"
                android:background="@drawable/shap_edittext_search"
                android:drawableLeft="@drawable/search"
                android:drawablePadding="8dp"
                android:gravity="center_vertical"
                android:hint="搜索地点"
                android:paddingLeft="11dp"
                android:paddingRight="11dp"
                android:singleLine="true"
                android:textSize="14sp" />
    
            <TextView
                android:id="@+id/tvCanale"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginRight="10dp"
                android:gravity="center"
                android:text="取消" />
        </LinearLayout>
    
        <View
            android:id="@+id/popup_window_v_alpha"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    
    </LinearLayout>


    三、在activity,fragment中调用:

    case R.id.rl_friendSearch:
    				new SearchUtils(AddFriendActivity.this, topTitleView,
    						fatherView, strHint, textWatcher).showSearchBar();
    				break;

    注意:第一个参数不用多说,activity。第二个参数:顶部标题栏的布局id。第三个参数:是整个界面的根布局id。第四个参数:是弹出popupwindow中edittext的hint

    .第五个参数:是弹出popupwindow中edittext的回掉监听。


    四、搞定,运行。



    展开全文
  • 仿微博QQ搜索框实现

    千次阅读 2015-02-25 10:55:18
    大家新年快乐,过年 也不忘 学习 , 这是我过年 看到QQ新浪微博的搜索 发现自己做的搜索框并没有 别人的那种效果 通过学习 自己简单的写了一个QQ 搜索效果 有不足和更好的解决方案请大家 提出, 话不多说下面 上代码!...
    大家新年快乐,过年 也不忘 学习  , 这是我过年 看到QQ新浪微博的搜索 发现自己做的搜索框并没有 别人的那种效果 通过学习 自己简单的写了一个QQ 搜索效果 有不足和更好的解决方案请大家 提出, 话不多说下面 上代码!
    
    package com.zhl.qqsearch;
    
    import android.annotation.SuppressLint;
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.animation.Animation;
    import android.view.animation.TranslateAnimation;
    import android.view.animation.Animation.AnimationListener;
    import android.view.Window;
    import android.widget.LinearLayout;
    import android.widget.Toast;
    
    import android.widget.TextView;
    
    public class MainActivity extends FragmentActivity {
    	private float y;
    	private int height;
    	private LinearLayout mLinear;//整体布局
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    		setContentView(R.layout.activity_main);
    		mLinear = (LinearLayout) findViewById(R.id.main_realtive);
    		final TextView mTvTitle = (TextView) findViewById(R.id.main_tv_title);
    		final TextView mTvSearch = (TextView) findViewById(R.id.tv_search);
    		mTvSearch.setOnClickListener(new OnClickListener() {
    
    			@SuppressLint("NewApi")
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				y = mTvSearch.getY();// 得到控件在Y轴的位置
    				height = mTvSearch.getHeight();// 得到控件的高度 我没用到
    				TranslateAnimation animation = new TranslateAnimation(0, 0, 0,
    						-y);// 平移动画
    				animation.setDuration(500);
    				animation.setFillAfter(true);
    				animation.setAnimationListener(new AnimationListener() {
    					@Override
    					public void onAnimationStart(Animation animation) {
    
    					}
    
    					@Override
    					public void onAnimationRepeat(Animation animation) {
    
    					}
    
    					@Override
    					public void onAnimationEnd(Animation animation) {
    						Intent intent = new Intent();
    						intent.setClass(getApplicationContext(),
    								SearchActivity.class);
    						startActivityForResult(intent, 100);
    						overridePendingTransition(R.anim.animation_2,
    								R.anim.animation_1);
    					}
    				});
    				mLinear.startAnimation(animation);
    			}
    		});
    
    	}
    
    	@Override
    	protected void onActivityResult(int arg0, int arg1, Intent arg2) {
    		// TODO Auto-generated method stub
    		// 返回时 的 动画
    		TranslateAnimation animation = new TranslateAnimation(0, 0, -y, 0);
    		animation.setDuration(500);
    		animation.setFillAfter(true);
    		mLinear.startAnimation(animation);
    		Toast.makeText(getApplicationContext(), "出来了", 1000).show();
    		super.onActivityResult(arg0, arg1, arg2);
    	}
    }
    

    展开全文
  • android搜索框 仿QQ搜索框 简单易懂

    千次阅读 2018-01-16 19:20:34
  • 爬取QQ音乐搜索框数据,用图表显示,有处理Json数据的过程。
  • 仿QQ界面之搜索框

    千次阅读 2015-06-22 12:18:03
    今天上午刚考完试,我们的仿QQ界面还没做完,今天我们继续,由于刚考完试,让我缓一缓先来一个简单的作为下一步的铺垫 效果演示 我们要做的是这个部分 这是我们做的效果 知识点总结 1.如何给...

    概要

    好久都没更了...大学考试你懂得“一天一本书,一周一学期”。。。今天上午刚考完试,我们的仿QQ界面还没做完,今天我们继续,由于刚考完试,让我缓一缓先来一个简单的作为下一步的铺垫

    效果演示

    我们要做的是这个部分



    这是我们做的效果



    知识点总结

    1.如何给ImageButton设置背景图片->用 src=“@drawable/****”

    2.如何在xml隐藏ImageButton -> visibility= "gone"

    3.能不能对文本编辑框进行监听? ->能,用addTextChangedListener(new TextWatcher{})

    4.如何在activity里实现imagebutton的隐藏与显示 

    setVisibility(View.VISIBLE);
    显示

    setVisibility(View.GONE);
    隐藏

    5.如何显示和隐藏密码文本?如何分别监听按钮的按下和弹开?->在demo中注释给出


    DEMO

    还是先来xml布局文件

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#f2f2f2"
        tools:context="com.example.administrator.icephonefhhxml.ForgottenPassword">
    
        <View
            android:layout_height="2dp"
            android:layout_width="fill_parent"
            android:background="#dddddd"
            android:id="@+id/v0"
            />
    
        <View
            android:layout_height="0.5px"
            android:layout_width="fill_parent"
            android:background="#ebebeb"
            android:id="@+id/v1"
            android:layout_below="@+id/v0"
            android:layout_marginTop="12dp"
            />
    
        <LinearLayout
            android:id="@+id/firstBlock"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/v1"
            android:background="#FFFFFF"
            android:orientation="vertical" >
    
            <LinearLayout
                android:id="@+id/Blockline1"
                android:layout_width="fill_parent"
                android:layout_height="48dp"
                android:layout_alignTop="@+id/v1"
                android:background="#FFFFFF"
                android:orientation="horizontal" >
    
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/iv_phone"
                    android:layout_marginLeft="21dp"
                    android:layout_marginTop="12dp"
                    android:src="@drawable/my_icon_mobile"/>
    
                <EditText
                    android:layout_width="150dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="17dp"
                    android:layout_marginTop="15dp"
                    android:id="@+id/edtTxt_phone_number"
                    android:hint="请输入手机号"
                    android:background="@null"
                    android:phoneNumber="true"//设置文本类型是电话号码
                    android:maxLength="11" //设置最大长度
                    android:textColor="#404548"
                    android:textCursorDrawable="@drawable/cursor_style"//设置光标风格(第一篇文章讲过这个方法)
                    android:textSize="16sp"/>
    
                <Button
                    android:id="@+id/btn_getting_code"
                    android:layout_width="100dp"
                    android:layout_height="35dp"
                    android:layout_marginLeft="13dp"
                    android:layout_marginTop="12dp"
                    android:background="@drawable/code_style"//设置按钮风格,这里可以用普通图片替代
                    android:textColor="#404548"
                    android:textSize="14sp"
                    android:text="获取验证码" />
    
            </LinearLayout>
            <View
                android:layout_height="0.5px"
                android:layout_width="fill_parent"
                android:background="#ebebeb"
                android:id="@+id/v3"
                android:layout_marginTop="17dp"
                />
    
    
            <LinearLayout
                android:id="@+id/Blockline2"
                android:layout_width="fill_parent"
                android:layout_height="48dp"
                android:layout_alignTop="@+id/v3"
                android:background="#FFFFFF"
                android:orientation="horizontal" >
    
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/iv_code_lock"
                    android:layout_marginLeft="19dp"
                    android:layout_marginTop="12dp"
                    android:src="@drawable/my_icon_lock"/>
    
                <EditText
                    android:layout_width="150dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="13dp"
                    android:layout_marginTop="16.5dp"
                    android:id="@+id/edtTxt_auth_code"
                    android:hint="验证码"
                    android:background="@null"
                    android:maxLength="11"
                    android:textColor="#404548"
                    android:textCursorDrawable="@drawable/cursor_style"
                    android:textSize="16sp"/>
    
                <ImageButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/imgbtn_delete"
                    android:layout_marginLeft="80dp"
                    android:layout_marginTop="16.5dp"
                    android:src="@drawable/change_city_roundadd"
                    android:visibility="gone"
                    android:background="@null"/>
            </LinearLayout>
            <View
                android:layout_height="0.5px"
                android:layout_width="fill_parent"
                android:background="#ebebeb"
                android:id="@+id/v4"
                android:layout_marginTop="17dp"
                />
    
            <LinearLayout
                android:id="@+id/Blockline3"
                android:layout_width="fill_parent"
                android:layout_height="48dp"
                android:layout_alignTop="@+id/v4"
                android:background="#FFFFFF"
                android:orientation="horizontal" >
    
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/iv_code_resetting_lock"
                    android:layout_marginLeft="19dp"
                    android:layout_marginTop="12dp"
                    android:src="@drawable/my_icon_lock"/>
    
                <EditText
                    android:layout_width="150dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="13dp"
                    android:layout_marginTop="16.5dp"
                    android:id="@+id/edtTxt_code_resetting"
                    android:hint="重设登录密码"
                    android:background="@null"
                    android:maxLength="11"
                    android:textColor="#adadad"
                    android:textCursorDrawable="@drawable/cursor_style"
                    android:textSize="16sp"
                    android:password="true"/>
    
                <ImageButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/imgbtn_look"
                    android:layout_marginTop="18dp"
                    android:layout_marginLeft="78dp"
                    android:src="@drawable/btn_look_style"
                    android:background="@null"/>
    
    
            </LinearLayout>
    
            <View
                android:layout_height="0.5px"
                android:layout_width="fill_parent"
                android:background="#ebebeb"
                android:id="@+id/v5"
                android:layout_marginTop="17dp"
                />
    
    
        </LinearLayout>
    
        <Button
            android:id="@+id/btn_complete"
            android:layout_width="fill_parent"
            android:layout_height="46dp"
            android:layout_below="@+id/firstBlock"
            android:layout_marginLeft="12dp"
            android:background="@drawable/button_style"
            android:layout_marginRight="12dp"
            android:layout_marginTop="30dp"
            android:text="完成"
            android:textColor="#FFFFFF"
            android:textSize="18sp"
            android:focusable="true"/>
    
    </RelativeLayout>
    

    关键代码已经注释,如有问题可以给我留言,xml布局实现之后就是示例的样子


    Activity代码

    package com.example.administrator.icephonefhhxml;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.text.method.HideReturnsTransformationMethod;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.Window;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.TextView;
    
    import static android.text.method.PasswordTransformationMethod.*;
    
    
    public class ForgottenPassword extends Activity {
    
        TextView tittle;
        Button back;
        ImageButton imgBtn_show_code;
        EditText edtTxt_password;
        EditText edtTxt_code;
        ImageButton imgBtn_delete_code;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
            setContentView(R.layout.activity_forgotten_password);
            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.tittle_bar);//设置标题栏,之前有讲过 
    
            tittle = (TextView)findViewById(R.id.tv_tittle);
            tittle.setText("忘记密码");
    
            back = (Button)findViewById(R.id.btn_back);
            back.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
            //各种获取监听
            edtTxt_password = (EditText)findViewById(R.id.edtTxt_code_resetting) ;
            imgBtn_show_code = (ImageButton)findViewById(R.id.imgbtn_look) ;
            edtTxt_code =(EditText)findViewById(R.id.edtTxt_auth_code);
            imgBtn_delete_code = (ImageButton)findViewById(R.id.imgbtn_delete);
            ButtonListener b = new ButtonListener();
            imgBtn_show_code.setOnTouchListener(b);
    
            imgBtn_delete_code.setOnClickListener(new View.OnClickListener() {
                //点击按钮删除文本框中的内容
                @Override
                public void onClick(View v) {
                    edtTxt_code.setText("");
    
                }
            });
    
            edtTxt_code.addTextChangedListener(new TextWatcher() {
    //监听文本框的输入
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {//在正要输入时
                    // TODO Auto-generated method stub
                    if(edtTxt_code.length() != 0)//如果文本框中有内容
                    {
                        imgBtn_delete_code.setVisibility(View.VISIBLE);//删除按钮显现出来
                    }else
                    {
                        imgBtn_delete_code.setVisibility(View.GONE);//否则按钮隐藏
                    }
    
                }
    
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,//在输入前
                                              int after) {
                    // TODO Auto-generated method stub
                    if(edtTxt_code.length() != 0)
                    {
                        imgBtn_delete_code.setVisibility(View.VISIBLE);
                    }else
                    {
                        imgBtn_delete_code.setVisibility(View.GONE);
                    }
    
                }
    
                @Override
                public void afterTextChanged(Editable s) {//在输入后
                    // TODO Auto-generated method stub
                    if(edtTxt_code.length() != 0)
                    {
                        imgBtn_delete_code.setVisibility(View.VISIBLE);
                    }else
                    {
                        imgBtn_delete_code.setVisibility(View.GONE);
                    }
    
                }
            });
    
    
    
        }
    
        class ButtonListener implements View.OnTouchListener//用来控制显示按钮的监听(就是那个眼睛)
        {
    
            @Override
            public boolean onTouch(View v, MotionEvent event)
            {
                if(v.getId() == R.id.imgbtn_look)//如果点击了这个按钮
                {
                    if(event.getAction() == MotionEvent.ACTION_UP)//按钮弹起
                    {
                        edtTxt_password.setTransformationMethod(getInstance());//隐藏
                        edtTxt_password.setSelection(edtTxt_password.length());//这句是设置光标位置到最后
    
                    }
                    if(event.getAction() == MotionEvent.ACTION_DOWN)//按钮按下
                    {
                        edtTxt_password.setTransformationMethod(HideReturnsTransformationMethod.getInstance());//显示隐藏的内容
                        edtTxt_password.setSelection(edtTxt_password.length());//设置光标位置到最后
                    }
                }
                return false;
            }
    
    
    
        }
    
    
    }

    下面分析一下代码:先在验证码的文本框后设置一个用来删除这个文本框的内容的按钮,我们将这个按钮先隐藏,然后在activity中获得他们,给文本框设置监听:无论是正在编辑、编辑之前还是编辑之后都检测文本框内容是否为空,如果是,则隐藏按钮,否则显示按钮,然后给按钮设置监听,当点击时设置文本框内容为空,这就完成了第一个功能,第二个功能就是在按钮按下时显示密码,这个部分主要就是学习onTouchListener方法来实现对按钮点击状况的监听,监听器获得一个event通过判断他的action来确定是否按下/弹起,然后进行相应的操作(注意要保持光标在最后)

    大概内容就是这样,不过由于标题栏的原因本文中的代码完全复制粘贴过去并不能运行,需要和之前设置标题栏的文章结合一下~


    感想

    对于本文来说,我感觉最有用的一是如何对编辑框监听和对按钮的状态监听,以后会常用!

    最后还是每日一句,这也是我最近复习时的感触,每个人的时间和能力都是有限的,我们只要足够努力,然后学会生活就好了!

    每日一句:
    也许现在我们做不了最好的自己,但是我们至少要做最努力的自己!
    也许我们现在没法


    展开全文
  • 易语言名人QQ正则搜索源码系统结构:采集QQ号, ======窗口程序集1 || ||------_超级列表1_右键单击表项 || ||------_超级列表1_被双击 || ||------_搜索号码_被选择 || ||------采集QQ号 || ||------
  • EasyUI 搜索框

    千次阅读 2016-07-29 17:32:05
    搜索框(searchbox)提示用户输入搜索值。它可以结合一个菜单,允许用户选择不同的搜索类别。当用户按下 ENTER 键时或者点击组件右侧的搜索按钮时,搜索动作将被执行。 1、用法 (1)、从标记创建。把 'easyui-...
  • <!DOCTYPE html> <html> <head> ...meta charset="utf-8">...QQ彩贝高级搜索</title> <style type="text/css"> /* *{ margin: 0px; padding: 0px; } *...
  • 【京华志 www.jinghuazhi.com】任务中的工具自定义一个搜索框
  • 仿QQ邮箱收件人搜索及简单删除功能

    千次阅读 2018-12-15 17:10:25
    在这里说明 :文本框搜索js实现是网上拿下来的,自己在上面做了更改,实现了文本框多选并按块删除。 (还有很多不足,希望有改进的能再分享。Thanks(・ω・)ノ) 效果图: 鼠标移入颜色: 鼠标点击及键盘键...
  • [微信小程序]搜索功能实现,搜索框样式

    万次阅读 多人点赞 2017-11-28 11:21:11
    微信小程序开发交流qq群 173683895 承接微信小程序开发。...1.在首页做一个搜索框的样式并实现跳转到搜索页面 <view class='page_row' bindtap="suo"> <view class="search"> <view cla...
  • 当我们用到搜索框时,有用过Auto
  • 搜索框jQuery特效

    2015-11-25 08:45:12
    搜索框jQuery特效,搜索框js特效,网站搜索按钮和提交验证表单。
  • 联系人搜索框

    2016-03-25 20:15:15
    仿通讯录联系人搜索框搜索效果
  • 搜索框功能

    2015-08-18 03:12:32
    一个安卓代码,自定义一个搜索框功能的实现,输入关键字进行搜索
  • 仿qq搜索动画效果

    2015-01-27 13:01:22
    在使用QQ的时候发现搜索的动画效果很好,...搜索框获得焦点后,顶部搜索测试或慢慢向上收索,动画完成后pop页面出现,退出也是一样 中间的过渡效果: 顶部项目收索的·动画: package com.tencentsearch
  • 这次轮到真的导航了 #TextNav a {margin:2px 0;padding:2px 5px 0px 5px;font-size:12px;font-family:"宋体","Arial Narrow";} #TextNav a.lcnew {background:url...
  • HTML搜索框文件

    2015-10-18 09:46:22
    此文件包含了百度、谷歌、好搜、维基百科的搜索框,如需添加,请另行通知作者。
  • ![CSDN移动问答][1] [1]: ... ...QQ的界面, 点击搜索后,页面没有跳转,页面顶部出现 搜索框,并且背景变灰了,这种ui是怎么做的?哪位大神帮忙解决一下 ??
  • 淘宝搜索框CSS样式

    2016-08-08 11:24:11
    淘宝网选项卡类型搜索框样式代码
  • 闲鱼搜索框

    2018-05-13 21:12:45
    把闲鱼搜索框找回来。非常方便,大家可以试用。这是一个牛人做的。
  • element搜索框实现数据搜索

    千次阅读 2019-04-29 16:57:08
    需求描述:可以看到这个弹出框上的数据有37页,领导说为了方便选择,你给我搞一个搜索框还有分页在上边。 (这上边的数据是页面刚创建时就已经从后台查询返回的数据,在created钩子函数里边完成的) 本来上午是...
  • iOS搜索框的实现

    千次阅读 2016-04-07 23:59:40
    iOS搜索框的实现引子:搜索框是我们在实际开发中比较常用到的控件之一,可以说几乎每一个应用程式中都会使用到搜索框,例如QQ、微信等都用到了搜索框iOS中的搜索框实现起来相对简单一点,实现方法大致有iOS8.0之前的...
  • HTML+CSS淘宝 页眉导航以及Logo搜索框的实现

    千次阅读 多人点赞 2019-05-13 22:51:24
    很久没记录了,现在对淘宝所有部整体实现(虽然还有部分的还没有实现, 我就是偷懒来保存下,可怜的小傻猫,要是崩了,我...还有我的搜索框的实现借用了哪位博友的,太久了,我也忘了(这个不是我的) (郁闷的傻猫...
  • jQuery下拉菜单选中搜索框插件代码jQuery下拉菜单选中搜索框插件代码
  • 今天突然出现的问题,在状态左下角的搜索框搜索OneNote没有任何反应,对,就是这个地方。 最后在另一篇博客上找到了答案,那篇博客也是在知乎找得到的答案,虽然是用被人的方法解决了问题,但我还是打算记下来; ...
  • 搜索框特效

    2018-09-04 16:49:37
    一个带背景的搜索框特效,感觉不错,欢迎大家前来下载

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,396
精华内容 31,358
关键字:

qq搜索框怎么删除