过去几个月我一直在使用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中指定的位置。
答案 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