【Android】自定义标题栏

小积累:
1、在linearlayout布局里面的子控件有两种形态:一种是铺满(match、fill)左右或者上下全屏,一种是wrap(刚好能够包容下控件中的资源大小)(而且还是往左上角靠的....),可以靠weight调整它们的分配布局。
2、除去自带标题栏的两种方法:在oncreate中加上requestWindowFeatrue(Window.FEATRUE_NO_TITLE);
或者在 res/values/style中找到
"Theme.AppCompat.Light.DarkActionBar">
变成
"Theme.AppCompat.Light.NoActionBar">
3、返回的代码:
((Activity)getContext()).finish();
  finish();
  重写onBackPressed()方法可以及时保存数据哦~(忘记在哪了,后补代码)。

xml知识:
适用情形:当多个布局需要某特定布局(比如无需响应事件的标题栏)的时候。
<include layout="@layout/title"/>
可以在其他布局里面嵌套已经写好的布局或者其它资源。好方便啊...也可以在其中添加代码控制属性。

适用情形:当多个布局需要某特定能响应事件的布局的时候。
在需要的布局(假如是main)下加:
<com.atry.aic.titlebar.TitleLayout  
    android:layout_width="match_parent"
    android:layout_height="wrap_content">com.atry.aic.titlebar.TitleLayout>
 
  
上述com.atry.aic.titlebar.TitleLayout中的TitleLayout有以下代码:

public class TitleLayout extends LinearLayout {

    public TitleLayout(Context context,AttributeSet attrs) {
        super(context,attrs);
        LayoutInflater.from(context).inflate(R.layout.title,this);
    }
}

 
  
其中inflate(A,B),A是布局,B是父布局,即我们希望在B上弄上A布局。
 
  
(疑惑:< />和<>的区别是啥)
在main布局中的设置的属性可能影响原title布局的属性,比如我的title是一行左右对称的布局,放到main中却变成了控件都往左边拥挤,因为我在设置属性的时候把width改成了wrap,导致了控件在行列上的变形,只要改成match,就能变成原来的title了。


 
  
 
  
 
 

你可能感兴趣的:(android(移动开发))