1、LinearLayout
可以在控件中使用:
android:layout_weight="1"
android:layout_width="0dp"
设置控件占屏幕宽度,上表示占屏幕1/2。
2、TableLayout
<TableLayout
android:stretchColums="1"
...>
上指定为1表示拉伸第2列,指定为0表示拉伸第1列
<Button
android:layout_span="2"
.../>
指定控件所占列数,上表示占两列的空间。
3、创建自定义控件 XML、java、include标签
java:
加载布局后
LayoutInflater.from(context).inflate(R.layout.title, this);
优:可以在代码中设置点击事件
package com.example.comeonlinearlayouttitle;import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.LinearLayout;
import android.widget.Button;
import android.view.View;
import android.annotation.SuppressLint;
import android.app.Activity;
@SuppressLint("NewApi")
public class TitleLayout extends LinearLayout{public TitleLayout(Context context) {super(context);// TODO Auto-generated constructor stub}public TitleLayout(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubLayoutInflater.from(context).inflate(R.layout.title, this);Button back_btn = (Button)findViewById(R.id.back);back_btn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View view){//Context android.view.View.getContext()//Returns the context the view is running in((Activity) getContext()).finish();}});}public TitleLayout(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stub}}
在XML中使用
<LinearLayout 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"><com.example.comeonlinearlayouttitle.TitleLayout android:layout_height="wrap_content"android:layout_width="match_parent"></com.example.comeonlinearlayouttitle.TitleLayout></LinearLayout>
<!-- <include layout="@layout/title"/> -->
在XML中写,使用include标签
<include layout="@layout/title_layout"/>
完整代码在:https://github.com/HiSunny/ComeOnTitle.git