android 没有像ios searchBar , 只能自己写了。
需要一张.9作为背景 , EditText 作为搜索框,一张删除图片,一张搜索图片 (放大镜)
<RelativeLayout android:id="@+id/rlSearchFrameDelete" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:gravity="center_vertical" > <EditText android:id="@+id/etSearch" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:background="@drawable/search_frame" android:hint="搜索" android:paddingLeft="32dp" android:singleLine="true" android:textSize="12sp" /> <ImageView android:id="@+id/ivDeleteText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerInParent="true" android:paddingRight="20dp" android:src="@drawable/delete" android:visibility="gone" /> </RelativeLayout>
//监听输入框,出现删除按钮。
etSearch.addTextChangedListener(new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } public void afterTextChanged(Editable s) { if (s.length() == 0) { ivDeleteText.setVisibility(View.GONE); } else { ivDeleteText.setVisibility(View.VISIBLE); } } });
//删除按钮点击事件
ivDeleteText.setOnClickListener(new OnClickListener() { public void onClick(View v) { etSearch.setText(""); } });
时间: 2024-11-13 11:14:30