編輯:關於Android編程
gravity 這個英文單詞是重心的意思,在這裡就表示停靠位置的意思。
android:gravity 和 android:layout_gravity 的區別:
android:gravity 是設置該view裡面的內容相對於該view的位置,例如設置button裡面的text相對於view的靠左,居中等位置。(也可以在Layout布局屬性中添加,設置Layout中組件的位置)。
android:layout_gravity 是用來設置該view相對與父view的位置,例如設置button在layout裡面的相對位置:屏幕居中,水平居中等。
即android:gravity用於設置View中內容相對於View組件的對齊方式,而android:layout_gravity用於設置View組件相對於Container的對齊方式。說的再直白點,就是android:gravity只對該組件內的東西有效,android:layout_gravity只對組件自身有效。
1、對於 LinearLayout :
當 android:orientation=vertical (垂直) 時,只有水平方向的設置才起作用,垂直方向的設置不起作用。即:left,right,center_horizontal 是生效的。
當 android:orientation=horizontal (水平) 時,只有垂直方向的設置才起作用,水平方向的設置不起作用。即:top,bottom,center_vertical 是生效的。
2、對於 FrameLayout : 任意android:layout_gravity屬性都有效,可以非常方便實現對組件的布局。 看個例子:setGravity()對應android:gravity
gravity屬性對應android:layout_gravity
下面代碼實現同上面布局文件實現的效果
Button button = new Button(this); button.setText(test); //設置Button中的文字位置,相當於Button布局屬性中的android:gravity=right|bottom button.setGravity(Gravity.BOTTOM|Gravity.RIGHT); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); //LinearLayout必須設置方向,否則無法看到效果 //故意加長button長度,這裡200的單位是px LinearLayout.LayoutParams buttonParams = new LinearLayout.LayoutParams(200, LayoutParams.WRAP_CONTENT); //相當於Button布局屬性中的android:layout_gravity=right buttonParams.gravity = Gravity.RIGHT; //相當於這兩句 button.setLayoutParams(buttonParams); // layout.addView(button); layout.addView(button, buttonParams); //設置Button的位置,相當於LinearLayout布局屬性中的android:gravity=center_vertical layout.setGravity(Gravity.CENTER_VERTICAL); setContentView(layout);
ProgressBar 簡介ProgressBar是一種很常用的Ui,用於給復雜的操作顯示進度,提供更好的用戶相應。使用setProgress()incrementPro
一般使用過UCWEB-Android版的人都應該對其特殊的menu有一定的印象,把menu做成Tab-Menu(支持分頁的Menu),可以容納比Android傳統的men
2月下旬辭職了,去海南度假到現在,領略了一把三亞風情也算任性和然而這樣任性帶來的後果就是。。不行了我必須吐槽一句。。沒畢業的找工作就這麼難嘛!投了57家一家面試機會都沒有
怎樣才能寫出優秀的Android App,是每一個程序員追求的目標。那麼怎麼才能寫出一個優秀的App呢?相信很多初學者也會有這種迷茫。一句話來回答這個問題:細節很重要。今