Sur*_*gch 5 android gravity android-linearlayout layout-gravity
我冒着写一个重复的问题的风险,但当我正在研究另一个SO问题的答案时,我意识到我找不到一个简单的问题和答案,其中包括设置一个重力和layout_gravity LinearLayout
.另外,在谈论一个ViewGroup
而不仅仅是一个观点时,我对它们之间的区别感到困惑.我在回答下面的问题.
以下是我查看的其他一些问题:
Sur*_*gch 18
设定重力
linearLayout.setGravity(Gravity.CENTER);
Run Code Online (Sandbox Code Playgroud)
设置布局重力
// the LinearLayout's parent is a FrameLayout
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(400, 400);
params.gravity = Gravity.TOP|Gravity.RIGHT;
linearLayout.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)
以前,我已经解释了布局中视图的"gravity"和"layout_gravity"之间的区别.
设置gravity
一个的LinearLayout
本身的变化的范围内它的视图的位置.设置layout_gravity会LinearLayout
更改LinearLayout
在其父布局中的排列方式.
此图像显示LinearLayout
(白色)内的FrameLayout
(棕色).该LinearLayout
的gravity
设置为center_horizontal
和它layout_gravity
被设置为right|bottom
.
这是xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/llExample"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="right|bottom"
android:background="#e3e2ad"
android:gravity="center_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="100dp"
android:layout_height="50dp"
android:background="#bcf5b1"
android:text="TextView 1" />
<TextView
android:id="@+id/textView1"
android:layout_width="100dp"
android:layout_height="50dp"
android:background="#aacaff"
android:text="TextView 2" />
</LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
下面的代码演示如何改变这两个gravity
和layout_gravity
的LinearLayout
.
public class LinearLayoutGravity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.linear_layout_gravity);
// Change the gravity (not layout_gravity) of the LinearLayout
LinearLayout ll = (LinearLayout) findViewById(R.id.llExample);
ll.setGravity(Gravity.CENTER);
// Change the layout_gravity (not gravity) of the LinearLayout
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(400, 400);
params.gravity = Gravity.TOP|Gravity.RIGHT;
ll.setLayoutParams(params);
}
}
Run Code Online (Sandbox Code Playgroud)
这是结果:
归档时间: |
|
查看次数: |
15614 次 |
最近记录: |