Android布局:中间和顶部之间的选项

Android布局:中间和顶部之间的选项,android,layout,Android,Layout,我希望在父视图中布局文本视图,有时作为垂直中心,有时仅设置topMargin(10),我使用以下代码: LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)textview.getLayoutParams; params.gravity = Gravity.NO_GRAVITY; params.topMargin = 0; if(condition){ params.grav

我希望在父视图中布局文本视图,有时作为垂直中心,有时仅设置topMargin(10),我使用以下代码:

    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)textview.getLayoutParams;

    params.gravity = Gravity.NO_GRAVITY;
    params.topMargin = 0;
    if(condition){
        params.gravity = Gravity.CENTER_VERTICAL;
    }else{
        params.topMargin = 10;
    }

    textview.setLayoutParams(params);
我使用linearLayout,但代码不起作用。以下是我的一段xml:

     <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical"
            >

            <TextView
                android:id="@+id/textview"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />
... other wigdet
</LinearLayout>

... 其他wigdet

您是以编程方式还是通过xml创建textview?是否尝试了LinearLayout.LayoutParams LayoutParams=(LinearLayout.LayoutParams)textview.getLayoutParams();然后设置重力?你很好,很有效。但在两种布局之间切换时,如何清除重力/顶部边距?我试过了,但弄糊涂了。在if条件下,可以将topmargin设置为0并设置重力。在其他情况下,可以用xml中指定的初始重力替换重力。我将topMargin设置为0,重力设置为NO_gravity,但仍然不正确。