自定义搜索框头布局兴趣树左右布局

xml布局

  <?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="wrap_content"
    android:orientation="horizontal"
    >
     <ImageView
         android:layout_width="40dp"
         android:layout_height="50dp"
         android:background="@mipmap/search"
         android:id="@+id/titlefind"
         />
    <EditText
        android:layout_width="500dp"
        android:layout_height="50dp"
        android:id="@+id/titleedit"
        android:background="@drawable/shape"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:text="购物车"
        android:paddingTop="15dp"
        android:id="@+id/textgo"
        />
</LinearLayout>

自定义控件LayoutviewGroup;

    package com.example.dell.yuekao2.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;

import com.example.dell.yuekao2.R;

public class TitleBar extends LinearLayout {
    private Context mContext;
    public TitleBar(Context context) {
        super(context);
        mContext = context;
        init();
    }
    public TitleBar(Context context,  AttributeSet attrs) {
        super(context, attrs);
        mContext = context;
        init();
    }
	    private void init() {
	        final View view = View.inflate(mContext, R.layout.titlebar,null);
	        final EditText editText =  view.findViewById(R.id.titleedit);
	        view.findViewById(R.id.titlefind).setOnClickListener(new OnClickListener() {
	            @Override
	            public void onClick(View v) {
	                 if (monButonClick!=null){
	                     monButonClick.onButtonClickLister(editText.getText().toString());
	                 }
	            }
	        });
	        view.findViewById(R.id.textgo).setOnClickListener(new OnClickListener() {
	            @Override
	            public void onClick(View v) {
	                if (monButon!=null){
	                    monButon.onClick();
	                }
	            }
	        });
	        addView(view);
	    }
	    onButonClick monButonClick;
	    public void setOnBouttomClick(onButonClick onBouttomClick){
	        monButonClick=onBouttomClick;
	    }
	    public interface onButonClick{
	        void onButtonClickLister(String str);
	    }
	    onButon monButon;
	    public void setOnClick(onButon onClick){
	        monButon = onClick;
	    };
	    public interface onButon{
	        void onClick();
	    }
	}

兴趣树左右布局代码

       package com.example.dell.yuekao2.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;

public class LayoutViewGroup extends LinearLayout {
    private Paint mPaint;
    public LayoutViewGroup(Context context) {
        super(context);
        init();
    }

    public LayoutViewGroup(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    private void init() {
        setWillNotDraw(false);
    mPaint = new Paint();
    mPaint.setColor(Color.BLUE);
    mPaint.setStyle(Paint.Style.FILL);
    mPaint.setStrokeWidth(3);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
     int sizeWidth = MeasureSpec.getSize(widthMeasureSpec);
     measureChildren(widthMeasureSpec,heightMeasureSpec);
    int childCount = getChildCount();
    int bottom=0;
    for (int i=0;i<childCount;i++){
        View view = getChildAt(i);
        bottom+=view.getMeasuredHeight();
    }
    setMeasuredDimension(sizeWidth,bottom);
}

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    super.onLayout(changed, l, t, r, b);
    int left=0,top=0;
    int childcount=getChildCount();
    for (int i=0;i<childcount;i++){
        View view = getChildAt(i);
        if (i%2==0){
            left=0;
        }
        else {
            left=getMeasuredWidth()/2;
        }
        view.layout(left,top,left+getMeasuredWidth()/2,top+view.getMeasuredHeight());
        top+=view.getMeasuredHeight();
    }
}


@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawLine(getMeasuredWidth()/2,0,getMeasuredWidth()/2,
    getMeasuredHeight(),mPaint
    );
}
}

Activiry

       package com.example.dell.yuekao2.activity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import com.example.dell.yuekao2.R;
import com.example.dell.yuekao2.view.LayoutViewGroup;
import com.example.dell.yuekao2.view.TitleBar;

public class MainActivity extends AppCompatActivity {
    private TitleBar titleBar;
    private LayoutViewGroup layoutViewGroup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        titleBar = findViewById(R.id.titlebar);
         layoutViewGroup = findViewById(R.id.layout);
         titleBar.setOnBouttomClick(new TitleBar.onButonClick() {
           @Override
          public void onButtonClickLister(String str) {
               TextView tv = new TextView(MainActivity.this);
               tv.setTextSize(20);
               tv.setText(str);
               layoutViewGroup.addView(tv);
           }
       });
         titleBar.setOnClick(new TitleBar.onButon() {
             @Override
             public void onClick() {
                 Intent intent = new Intent(MainActivity.this,LoaginActivity.class);
                 startActivity(intent);
             }
         });
    }
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现自定义搜索框(EditText)的搜索功能,你可以按照以下步骤进行: 1.在你的布局文件中添加一个EditText和一个搜索按钮(可选)。 ```xml <RelativeLayout ... <EditText ... android:id="@+id/search_edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/search_hint" android:imeOptions="action_search" android:inputType="text" android:maxLines="1" android:singleLine="true" /> <ImageButton ... android:id="@+id/search_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:src="@drawable/ic_search" /> </RelativeLayout> ``` 2.在你的Activity(或Fragment)中找到EditText和ImageButton并设置OnClickListener。 ```java public class MainActivity extends AppCompatActivity { private EditText searchEdit; private ImageButton searchBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); searchEdit = findViewById(R.id.search_edit); searchBtn = findViewById(R.id.search_btn); searchBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 执行搜索操作 performSearch(); } }); // 设置软键盘的搜索按钮监听器 searchEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) { // 执行搜索操作 performSearch(); return true; } return false; } }); } private void performSearch() { String keyword = searchEdit.getText().toString().trim(); // 执行搜索操作,比如跳转到搜索结果页面 Intent intent = new Intent(this, SearchResultActivity.class); intent.putExtra("keyword", keyword); startActivity(intent); } } ``` 3.在performSearch()方法中执行搜索操作,比如跳转到搜索结果页面,并将搜索关键字作为参数传递给搜索结果页面。 在搜索结果页面中,你可以使用搜索关键字来查询数据库或网络数据,并将结果显示在ListView或RecyclerView中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值