安卓常用的布局 XML

常用的控件

按钮                        Button

不可输入文本显示框    TextView

可输入文本显示框       EditText

图片                        ImageView


指定布局控件大小

    android:layout_width="match_parent"       

    android:layout_height="match_parent"

    match_parent与fill_parent作用一样,让空间布满整个屏幕

    

指定布局控件位置

android:layout_gravity="center"        //layout中 中心对齐
    android:gravity="center"                 //本控件中 文字中心对齐 如textview 中加上 就是textview中文字中心对齐
android:layout_marginTop="50dp"   //距上面控件  50dp

    android:layout_centerVertical="true"  //垂直方向 中心对齐 layout中使用

="20dp"    //布局控件 上面与别的控件 间距 20dp
    android:paddingLeft="10dip"      //自己控件内 距离
    android:paddingRight="10dip"  
    android:paddingTop="10dip"  
    android:paddingBottom="10dip"


布局中文本

android:textColor="#ffffff"               //颜色
    android:text=“@string/hh”              //文本内容


布局的背景

android:background="@drawable/button_back"    //对应png图片
android:background="0xffffff"                           //白色背景
图片布局 图片来源  <ImageView
"@drawable/me"                            //ImageView对应的图片

布局分布管理 常用

线型  LinearLayout
"horizontal"       //对齐方式

相对 RelativeLayout

android:layout_alignParentBottom="true"        //允许控件底部对齐,紧贴底部
android:gravity="bottom"                              //底部对齐

@id/tab_container"    //某个控件上方

文本布局特有

android:maxLines ="1"                    //文本  最大 一行
    android:hint="输入号码"                   //输入框 默认提示文字 
//输入密码


EditView

边框去掉 android:background="@null"  或者 #ffffff

禁止弹出输入法

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE |
                WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE |
                WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)


默认显示的 文字和文字颜色

android:hint="搜索洗车行"
android:textColorHint="@color/white"

输入的文字的 颜色和字体大小

android:textColor="@color/white"
android:textSize="15sp"


设置按钮为 通明背景 

<Button        
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:background="#00000000"
            />

控件是否显示出来

android:visibility="gone"
visible显示;invisible显示黑背景条;gone不显示
scrollView滚动条 隐藏
android:scrollbars="none"
setVerticalScrollBarEnabled(false);实现滚动条隐藏.
android:fillViewport="true"   解决scrollview中 match_parent不能铺面整个屏幕


ListView一些属性

android:divider="@null"                         <!-- listview之间没有分割线  -->
android:listSelector="#00000000"            <!-- 点击listview时 没有黄色背景 -->
android:descendantFocusability="blocksDescendants"    <!-- listview根布局 这样即使有Button等 item也会获得焦点 响应 -->



scrollview 与 listView冲突的解决办法

<ScrollView >
 <LinearLayout>
    <ListView>
    </ListView>
 </LinearLayout>
</ScrollView >

然后在代码中这样设置

int totalHeight = 0;
for (int i = 0, len = mAdapter.getCount(); i < len; i++) { //listAdapter.getCount()返回数据项的数目    
 View listItem = mAdapter.getView(i, null, mListView);    
 listItem.measure(0, 0); //计算子项View 的宽高    
 totalHeight += listItem.getMeasuredHeight(); //统计所有子项的总高度    
}   
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, totalHeight+(mAdapter.getCount()-1) * mListView.getDividerHeight());
mListView.setLayoutParams(lp1);

其中50是每行的高度,根据自己的listview实际高度进行调节

PopupWindow 加ScrollView 控件不能滑动解决  使用下面布局

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_popup"  
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"  >

        <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#444444">

        </LinearLayout>
    </ScrollView>
</LinearLayout>


一、底部TAB,早期的时候Android开发者们都会使用TabActivity去实现,但是TabActivity存在一些问题,请优先考虑使用Fragement。

二、顶部TAB,一般也是3-5个左右,相对于底部TAB风格,顶部TAB一般会引入ViewPager + Fragment的实现方式,这样可以做到左右切换。

三、侧边TAB,也就是SlidingMenu + Fragment或者MenuDrawer + Fragment。


安卓虚拟机加速器 intel的 包含window、linux、MAC

https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager


RelativeLayout里的gravity不能居中的解决方法

每个子组件里加上android:layout_centerHorizontal="true"



TextView 做的跑马灯 水平滚动

若要让TextView里的文本滚动,必须满足以下几个因素:

1,TextView里文本长度要超过TextView的长度
2,设置水平滚动 android:ellipsize="marquee"        
3,只有在TextView获取到焦点时,才会滚动.所以加上android:focusableInTouchMode="true" android:focusable="true"

4,滚动重复次数设置: android:marqueeRepeatLimit="marquee_forever"  //这个不设置也是无限滚动

这个如果不行,就用云盘中跑马灯的例子,设置一个MarqueTextView,return 焦点