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);
}
});
}
}