切换按钮的动态对齐

时间:2011-10-27 17:26:50

标签: android

过去几个月我一直在使用android,但我仍然不确定如何动态对齐按钮。我是用xml做的,但后来变成强类型......在我的情况下不需要。所以有人请帮我告诉我如何在java代码的帮助下放置切换按钮而不是xml。 例如: 如果我想在屏幕的最右下方放置一个切换按钮。请帮助我坚持下去。

这是我的xml:

   <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:weightSum="1">
        <RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="match_parent"
        android:layout_height="348dp">
          <EditText android:layout_width="wrap_content" android:layout_height="wrap_content"  
           android:id="@+id/editText1" android:layout_alignParentTop="true" 
           android:layout_alignParentLeft="true" android:layout_marginLeft="27dp" 
           android:layout_marginTop="55dp" android:layout_alignParentRight="true"></EditText>
        </RelativeLayout>
    </LinearLayout>

和java部分在这里.....

package org.in;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.ViewGroup.LayoutParams;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

public class AsbdActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        RelativeLayout rl=(RelativeLayout)findViewById(R.id.relativeLayout1);

        EditText ed=(EditText)findViewById(R.id.editText1);
        ed.setGravity(Gravity.BOTTOM);

    }
}

即使在设置重力后,editext仍保留在xml中指定的位置。

1 个答案:

答案 0 :(得分:1)

如果要在运行时更改项目的布局,则需要使用LayoutParams类。每个Layout类型都有一个子LayoutParams类。这是一个简单的例子,展示了如何做到这一点。

假设我TextView中包含LinearLayout,我想更改TextViews宽度和高度。

int newHeight; 
int newWidth;
LayoutParams lp = LinearLayout.LayoutParams(newWidth, newHeight);
textView.setLayoutParams(lp);

它可能比这复杂得多,但网上有很多教程可以更详细地解释如何做到这一点。

要记住的一点是,在更改视图上的LayoutParams时,您必须使用包含它的任何ViewGroup来生成LayoutParams对象,否则它将不会受到尊重ViewGroup