之前在布局中有很多问题也有很多经验,遗憾都没记下来。现在一点点记下一些东西。
1.外层用LinearLayout的话,常常把orientation设成vertical,
android:orientation="vertical"
同时,常常还要在LinearLayout里面加一句:
android:gravity="center_horizontal"
这两句配合的话才能使这个线性布局里面的控件实现垂直布局+水平居中。或者把第二句的center_horizontal改成center_vertical,就可以实现垂直居中。
需要注意的是,不要在这个线性布局里面的控件里(比如一个Button)加上面那句“android:gravity="center_horizontal"” ,因为android中布局里写的话常常是对子控件起作用的。
----------------------------
1.以前懂的,现在忘了,经过百度知道提问才回忆起来父容器的问题。“android:gravity="center_vertical" 只能使得文字在textview控件居中,并不能表示textview控件是居中的,这样在textview的父类布局器中再加上android:gravity="center_vertical"才行。”
android:background="@drawable/login_btn"
这里login_btn是一个在drawable文件夹里定义的xml文件(注意这时候不能有相同名字的9.png文件,不然Console会报错说已经有这个drawable了),含有按下和没按下两种状态的背景:
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/login_btn_focused" /> <item android:state_focused="true" android:drawable="@drawable/login_btn_focused" /> <item android:drawable="@drawable/login_btn_bg" /> </selector>
当作为父layout的LinearLayout的属性为android:orientation="vertical" 的时候,android:layout_gravity="?"这里设为横向的时候才能生效。比如:left,right,center_horizontal等
当作为父layout的LinearLayout的属性为android:orientation="horizental" 的时候,android:layout_gravity="?"这里设为纵向的时候才能生效。比如:top,bottom,center_vertical等;