如何在Java代码中设置EditText的位置

时间:2011-07-05 02:29:32

标签: android user-interface

如何设置EditText的位置或范围?我想通过我的Java代码而不是XML(布局)文件来实现。有没有办法设置位置?我通常是GUI的专业人士,但以前从未提出过,所以任何解决方案都是受欢迎的。

1 个答案:

答案 0 :(得分:1)

您无法在setViewPos(x,y)中明确设置Android中View的位置。

你知道android布局/视图系统是如何工作的吗?如果您可以实现您在XML中尝试做的事情,那么只需查看http://developer.android.com/reference/android/view/View.html并查看与您正在使用的XML属性相对应的setter方法。

如果您的视图已经存在于XML中,并且您希望在运行时对其进行操作,那么您需要引用它。在简单的情况下,您正在进行活动,并且您正在修改当前布局中的视图:

EditText yourView = (EditText)this.findViewById(R.id.your_view);    
//set attributes 
//you'll crash if you haven't this.setContentView(view's parent layout)

否则:

LayoutInflater inflater = context.getLayoutInflater();
View tmp = inflater.inflate(R.layout.your_layout, null , true);
EditText yourView = (EditText)tmp.findViewById(R.id.your_view);
//set attrinutes

或者如果您是从头开始创建视图,只需创建一个实例并将其添加到您的布局中:

EditText et= new EditTExt();
//set attributes
LinearLayout parent = (LinearLayout) this.findViewById(R.id.layout_id);
parent.addView(et)

但是如果你不知道如何在XML中定位它,你将不得不沿着教程小巷去寻找适合你情况的技术。

AbsoluteLayout将是一个快速修复,但我不建议它,因为当你在具有不同屏幕尺寸和分辨率的手机上试用你的应用程序时,你会得到一些讨厌的结果。

重力和重量不是那么强大,但它们并没有与屏幕尺寸紧密相关。

如果您尝试根据周围的视图放置视图,那么一定要使用 RelativeLayout的。

希望这有帮助!