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