正文
一、結構
java.lang.Object
android.view.View
已知直接子類:
已知間接子類:
二、xml屬性
屬性名稱
描述
android:background
設定背景色/背景圖檔。可以通過以下兩種方法設定背景為透明:"@android:color/transparent"和"@null"。注意TextView預設是透明的,不用寫此屬性,但是Buttom/ImageButton/ImageView想透明的話就得寫這個屬性了。
android:clickable
是否響應點選事件。
android:contentDescription
設定View的備注說明,作為一種輔助功能提供,為一些沒有文字描述的View提供說明,如ImageButton。這裡在界面上不會有效果,自己在程式中控制,可臨時放一點字元串資料。
android:drawingCacheQuality
設定繪圖時半透明品質。有以下值可設定:auto(預設,由架構決定)/high(高品質,使用較高的顔色深度,消耗更多的記憶體/low(低品質,使用較低的顔色深度,但是用更少的記憶體)。
android:duplicateParentState
如果設定此屬性,将直接從父容器中擷取繪圖狀态(光标,按下等)。 見下面代碼部分,注意根據目前測試情況僅僅是擷取繪圖狀态,而沒有擷取事件,也就是你點一下LinearLayout時Button有被點選的效果,但是不執行點選事件。
android:fadingEdge
設定拉滾動條時 ,邊框漸變的放向。none(邊框顔色不變),horizontal(水準方向顔色變淡),vertical(垂直方向顔色變淡)。參照fadingEdgeLength的效果圖
android:fadingEdgeLength
設定邊框漸變的長度。
android:fitsSystemWindows
設定布局調整時是否考慮系統視窗(如狀态欄)
android:focusable
設定是否獲得焦點。若有requestFocus()被調用時,後者優先處理。注意在表單中想設定某一個如EditText擷取焦點,光設定這個是不行的,需要将這個EditText前面的focusable都設定為false才行。在Touch模式下擷取焦點需要設定focusableInTouchMode為true。
android:focusableInTouchMode
設定在Touch模式下View是否能取得焦點。
android:hapticFeedbackEnabled
設定觸感回報。(譯者注:按軟鍵以及進行某些UI互動時振動,暫時不知道用法,大家可以找找performHapticFeedback或HapticFeedback這個關鍵字的資料看看。)
android:id
給目前View設定一個在目前layout.xml中的唯一編号,可以通過調用View.findViewById() 或Activity.findViewById()根據這個編号查找到對應的View。不同的layout.xml之間定義相同的id不會沖突。格式如”@+id/btnName”
android:isScrollContainer
設定目前View為滾動容器。這裡沒有測試出效果來,ListView/ GridView/ ScrollView根本就不用設定這個屬性,而EdidText設定android:scrollbars也能出滾動條。
android:keepScreenOn
View在可見的情況下是否保持喚醒狀态。常在LinearLayout使用該屬性,但是模拟器這裡沒有效果。
android:longClickable
設定是否響應長按事件.
android:minHeight
設定視圖最小高度
android:minWidth
設定視圖最小寬度度
android:nextFocusDown
設定下方指定視圖獲得下一個焦點。焦點移動是基于一個在給定方向查找最近鄰居的算法。如果指定視圖不存在,移動焦點時将報運作時錯誤。可以設定imeOptions= actionDone,這樣輸入完即跳到下一個焦點。
android:nextFocusLeft
設定左邊指定視圖獲得下一個焦點。
android:nextFocusRight
設定右邊指定視圖獲得下一個焦點。
android:nextFocusUp
設定上方指定視圖獲得下一個焦點。
android:onClick
點選時從上下文中調用指定的方法。這裡指定一個方法名稱,一般在Activity定義符合如下參數和傳回值的函數并将方法名字元串指定為該值即可:
public void onClickButton(View view)
android:onClick=” onClickButton”
android:padding
設定上下左右的邊距,以像素為機關填充空白。
android:paddingBottom
設定底部的邊距,以像素為機關填充空白。
android:paddingLeft
設定左邊的邊距,以像素為機關填充空白。
android:paddingRight
設定右邊的邊距,以像素為機關填充空白。
android:paddingTop
設定上方的邊距,以像素為機關填充空白。
android:saveEnabled
android:scrollX
以像素為機關設定水準方向滾動的的偏移值,在GridView中可看的這個效果。
android:scrollY
以像素為機關設定垂直方向滾動的的偏移值
android:scrollbarAlwaysDraw
HorizontalTrack
設定是否始終顯示垂直滾動條。這裡用ScrollView、ListView測試均沒有效果。
VerticalTrack
android:scrollbarDefault
DelayBeforeFade
設定N毫秒後開始淡化,以毫秒為機關。
android:scrollbarFadeDuration
設定滾動條淡出效果(從有到慢慢的變淡直至消失)時間,以毫秒為機關。Android2.2中滾動條滾動完之後會消失,再滾動又會出來,在1.5、1.6版本裡面會一直顯示着。
android:scrollbarSize
設定滾動條的寬度。
android:scrollbarStyle
設定滾動條的風格和位置。設定值:insideOverlay、insideInset、outsideOverlay、outsideInset。這裡沒有試出太多效果,以下依次是outsideOverlay與outsideInset效果截圖比較:
android:scrollbarThumbHorizontal
設定水準滾動條的drawable。
android:scrollbarThumbVertical
設定垂直滾動條的drawable.
android:scrollbarTrackHorizontal
設定水準滾動條背景(軌迹)的色drawable
android:scrollbarTrackVertical
android:scrollbars
設定滾動條顯示。none(隐藏),horizontal(水準),vertical(垂直)。見下列代碼示範使用該屬性讓EditText内有滾動條。但是其他容器如LinearLayout設定了但是沒有效果。
android:soundEffectsEnabled
設定點選或觸摸時是否有聲音效果
android:tag
設定一個文本标簽。可以通過View.getTag()或 for with
View.findViewWithTag()檢索含有該标簽字元串的View。但
一般最好通過ID來查詢View,因為它的速度更快,并且允
許編譯時類型檢查。
android:visibility
設定是否顯示View。設定值:visible(預設值,顯示),invisible(不顯示,但是仍然占用空間),gone
(不顯示,不占用空間)
四、代碼
4.1 android:duplicateParentState
<LinearLayout android:clickable="true" android:background="#ff0fff" android:layout_width="100dp" android:layout_height="100dp">
<Button android:duplicateParentState="true" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</LinearLayout>
4.2 android:scrollbars
<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content" android:minHeight="50dp"
android:background="@android:drawable/editbox_background"
android:scrollbars="vertical"
android:maxLines="4">
</EditText>
五、遺留問題
5.1 以下幾個屬性翻遍了資料試了很多次都沒有效果,隻能暫時擱置,以後補上,也歡迎的大家提供意見和線索,分享大家的經驗:
android:scrollbarAlwaysDrawHorizontalTrack
android:scrollbarAlwaysDrawVerticalTrack
android:isScrollContainer
本文轉自over140 51CTO部落格,原文連結:http://blog.51cto.com/over140/582718,如需轉載請自行聯系原作者