e-i*_*128 2 java layout android layout-gravity
我在这个布局上遇到了问题:(
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cuerpo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical" >
...
Run Code Online (Sandbox Code Playgroud)
在java代码中
LinearLayout cuerpo = (LinearLayout) findViewById(R.id.cuerpo);
if(align){
cuerpo.setGravity(Gravity.CENTER_VERTICAL);
}else{
cuerpo.setGravity(Gravity.NO_GRAVITY);
}
Run Code Online (Sandbox Code Playgroud)
我需要layout_gravity没有引力.
你所谈论的布局重心是内部LayoutParams的的LinearLayout对象.所以,从逻辑上讲,要实现这一目标,您必须遵循以下步骤:
得到LayoutParams你的LinearLayout.
如果你知道LayoutParams应该是什么,你可以施展它们(注意,这是基于你的选择,所以你必须确保它是正确的!).
设置gravity的LayoutParams,你的愿望.
所以在代码中这将是:
ViewGroup.LayoutParams layoutParams = cuerpo.getLayoutParams(); // Step 1.
LinearLayout.LayoutParams castLayoutParams = (LinearLayout.LayoutParams) layoutParams; // Step 2.
castLayoutParams.gravity = Gravity.CENTER_VERTICAL; // Step 3.
Run Code Online (Sandbox Code Playgroud)
或者作为一个简单的一个班轮,完成所有步骤:
((LinearLayout.LayoutParams) cuerpo.getLayoutParams()).gravity = Gravity.CENTER_VERTICAL;
Run Code Online (Sandbox Code Playgroud)
请注意:
我无法确切地看到你想要做什么,但这似乎不正确.该类型LayoutParams是不是的类型View,但类型Layout,你View是方式支付.
(比如在@ gincsait的引用中,如果我有一个Buttonin LinearLayout,那么LayoutParamsthe Button将是类型LinearLayout.LayoutParams.同样不能说LayoutParams的LinearLayout.)