Android開發之LinearLayout佈局詳解

Android開發之LinearLayout佈局詳解

        LinaerLayout又被稱爲線性佈局,是Android界面開發中經常使用的一種容器視圖控件。能夠使用XML佈局文件配置和代碼動態建立兩種方式來使用LinearLayout。使用LinearLayout能夠十分輕鬆的佈局出橫向或者縱向線性堆疊界面,而且,嵌套使用LinearLayout也能夠方便的佈局出複雜的平面組合佈局,一般狀況下,ScrollView會與LinearLayout進行結合使用。在iOS9中推出的UIStackView、在watchOS開發中使用和核心佈局模型Group與LinearLayout的思路十分一致,可見這種線性堆疊的佈局方式在必定場景下十分有優點。java

        使用代碼動態建立LinearLayout示例以下:ide

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //建立對象
        LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setBackgroundColor(Color.WHITE);
        setContentView(linearLayout);
        //設置佈局方向 
        /*
          支持水平和豎直兩種
          public static final int HORIZONTAL = 0;  水平線性佈局
          public static final int VERTICAL = 1;    豎直線性佈局
        */
        linearLayout.setOrientation(LinearLayout.VERTICAL);
        //設置顯示分割線的模式
        /*
          public static final int SHOW_DIVIDER_NONE = 0; 不顯示分割線
          public static final int SHOW_DIVIDER_BEGINNING = 1;  在開始處顯示分割線
          public static final int SHOW_DIVIDER_MIDDLE = 2;  在子視圖之間顯示分割線
          public static final int SHOW_DIVIDER_END = 4;   在結束尾部顯示分割線
        */
        linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
        //設置分割線Drawable
        linearLayout.setDividerDrawable(ResourcesCompat.getDrawable(getResources(),R.drawable.line,null));
    }

LinearLayout中經常使用屬性與方法,列舉以下:佈局

//獲取分割線Drawable對象
Drawable getDividerDrawable ()
//獲取分割線的padding值
int getDividerPadding ()
//獲取子視圖佈局模式
int getGravity ()
//獲取線性佈局方向
int getOrientation ()
//獲取展現分割線模式
int getShowDividers ()
//獲取佈局權重和
float getWeightSum ()
//設置是否容許計量最大子元素 與權重有關
boolean isMeasureWithLargestChildEnabled ()
//設置分割線Drawable
void setDividerDrawable (Drawable divider)
//設置分割線padding值
void setDividerPadding (int padding)
//設置子視圖佈局模式
/*
可選參數
AXIS_CLIP   //原始對齊
AXIS_PULL_AFTER  
AXIS_PULL_BEFORE
AXIS_SPECIFIED
AXIS_X_SHIFT
AXIS_Y_SHIFT
BOTTOM   //下對齊
CENTER   //居中對齊
CENTER_HORIZONTAL // 水平居中對齊
CENTER_VERTICAL   // 豎直居中對齊
CLIP_HORIZONTAL
CLIP_VERTICAL
DISPLAY_CLIP_HORIZONTAL
DISPLAY_CLIP_VERTICAL
END  //末尾對齊
FILL //充滿
FILL_HORIZONTAL //水平充滿
FILL_VERTICAL   //豎直充滿
HORIZONTAL_GRAVITY_MASK
LEFT   //左對齊
NO_GRAVITY //空模式
RELATIVE_HORIZONTAL_GRAVITY_MASK
RELATIVE_LAYOUT_DIRECTION
RIGHT  //右對齊
START  //起始對齊
TOP   //上對齊
VERTICAL_GRAVITY_MASK
*/
void setGravity (int gravity)
//設置水平佈局模式
void setHorizontalGravity (int horizontalGravity)
//設置佈局方向
void setOrientation (int orientation)
//設置豎直佈局模式
void setVerticalGravity (int verticalGravity)
//設置佈局權重和
/*
當佈局容器內子視圖是經過權重來計算所佔比例時 這個值表示權重總和
*/
void setWeightSum (float weightSum)
//設置子視圖的觸摸事件是否延遲執行
/*
這個屬性用於類型ScrollView,ListView能夠滑動的視圖中,避免手勢衝突
*/
boolean shouldDelayChildPressedState ()

專一技術,熱愛生活,交流技術,也作朋友。this

——琿少 QQ羣:435043639spa

相關文章
相關標籤/搜索