2016年9月14日 星期三

Diiferent layout

Relative Layout
Parent
android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentTop="true"

central
set the position of the view relative to its parent
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
  android:layout_centerVertical="true"


Above and below to Left and  Right
set to ablove or below a specifice view by the ID

android:layout_above="@+id/textView"
android:layout_below="@id/textView"

set the view at the left or right of the specific veiw by ID

android:layout_toRightOf="@id/textView"


Align base on the line
bottom line,top line,base line,left and right

android:layout_alignBottom="@id/textView"
       android:layout_alignTop="@id/textView"
       android:layout_alignBaseline="@id/textView"

left line to left line
       android:layout_alignLeft="@id/textView"

righ line to right line
       android:layout_alignRight="@id/textView"

Gird Layout

GridLayout


columnCount
設定行數
rowCount
設定列數
orientation
自動排行的方向
vertical:up to down,when reach the rowCount number,will go to next column

horizontal:left to right,when reach the columnCountnumber,will go to next row





GridLayout LayoutParams

layout_column
at reach column start by 0,if not set,auto increase
layout_row

layout_columnSpan
across the column
layout_rowSpan
accross the row
layout_gravity
when the view is smaller the cell,can set how the view place

layout_gravity

top                      -- 控件置于容器顶部,不改变控件的大小。
 bottom                -- 控件置于容器底部,不改变控件的大小。
 left                     -- 控件置于容器左边,不改变控件的大小。
 right                   -- 控件置于容器右边,不改变控件的大小。
 center_vertical     -- 控件置于容器竖直方向中间,不改变控件的大小。
 fill_vertical          -- 如果需要,则往竖直方向延伸该控件。
 center_horizontal -- 控件置于容器水平方向中间,不改变控件的大小。
 fill_horizontal      -- 如果需要,则往水平方向延伸该控件。
 center                -- 控件置于容器中间,不改变控件的大小。
 fill                     -- 如果需要,则往水平、竖直方向延伸该控件。
 clip_vertical        -- 垂直剪切,剪切的方向基于该控件的top/bottom布局属性。若该控件的gravity是竖直的:若它的gravity是top的话,则剪切该控件的底部;若该控件的gravity是bottom的,则剪切该控件的顶部。
 clip_horizontal     -- 水平剪切,剪切的方向基于该控件的left/right布局属性。若该控件的gravity是水平的:若它的gravity是left的话,则剪切该控件的右边;若该控件的gravity是  right的,则剪切该控件的左边。
 start                  -- 控件置于容器的起始处,不改变控件的大小。
 end                   -- 控件置于容器的结束处,不改变控件的大小。


Example


<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:columnCount="4"
   android:orientation="horizontal"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   tools:context="poly.pom.tryrelativelayout.MainActivity">
   <!--row1-->


   <Button
       android:id="@+id/button"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_column="0"
       android:layout_row="0"
       android:text="C" />

   <Button
       android:id="@+id/button2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_row="0"
       android:text="+/-" />

   <Button
       android:id="@+id/button3"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_row="0"
       android:text="/" />

   <Button
       android:id="@+id/button4"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_row="0"
       android:text="X" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="7"
       android:id="@+id/button5" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="8"
       android:id="@+id/button6" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="9"
       android:id="@+id/button7" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="-"
       android:id="@+id/button8" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="4"
       android:id="@+id/button9" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="5"
       android:id="@+id/button10" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="6"
       android:id="@+id/button11" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="+"
       android:id="@+id/button12" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="1"
       android:id="@+id/button13" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="2"
       android:id="@+id/button14" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="3"
       android:id="@+id/button15" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_rowSpan="2"
       android:layout_gravity="fill_vertical"
       android:text="="
       android:id="@+id/button16" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_columnSpan="2"
       android:text="0"
       android:layout_gravity="fill_horizontal"
       android:id="@+id/button17" />

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="."
       android:id="@+id/button18" />


</GridLayout>