自定义组合控件

项目中时常会用到相同的布局,如果每个页面都复制一遍,然后改一下Id,这样的当然可以,不过,不免麻烦,

们就写一个自己的布局,即自定义组合控件。

我们就以典型的头最为模型,来开始我们的自定义组合控件,其实很简单。

1.先写一个布局,给上Id,定好样式:




    
        
    

    


2.新建一个自定义的类TitleView:

public class TitleView extends RelativeLayout {

    private RelativeLayout relativeLayout;
    private TextView textView;

    public TitleView(Context context, AttributeSet attrs) {
        super(context, attrs);
        //加载布局
        LayoutInflater.from(context).inflate(R.layout.title_bar, this);
        //查找控件
        relativeLayout = (RelativeLayout) findViewById(R.id.back);
        textView = (TextView) findViewById(R.id.textView);
    }

    //RelativityLayout的点击监听
    public void setRelativeLayoutListener(OnClickListener listener) {
        relativeLayout.setOnClickListener(listener);
    }


    //为Text设置标题
    public void setTitleText(String title){
        textView.setText(title);
    }
}

3.使用:只需要像使用普通控件一样使用就可以了:

public class SecondActivity extends AppCompatActivity {

    private TitleView titleView;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        titleView = (TitleView) findViewById(R.id.title2);

        findViewById(R.id.btn2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(SecondActivity.this, ThirdActivity.class));
            }
        });

        titleView.setRelativeLayoutListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
        titleView.setTitleText("第二个Activity");

    }
}

Demo下载

你可能感兴趣的:(Android自定义控件)