java - 将 TextView 与 EditText 对齐

标签 java android android-layout android-edittext textview

我想将 TextView 对齐到 EditText 上方。当 TextView 不高于窗口的上边距(红线)和 EditText 之间的间距时,以下代码可以正常工作(绿线),如屏幕截图所示。

当 TextView 的行数多于屏幕截图中的行数时,就会出现问题:它只是“超出”EditText,但我想将 EditText 保留在前台。

换句话说:我想将 TextView 的下边距放在绿线上,并让它向红线增长,以保持 EditText 的可见性。

enter image description here

// LINEAR LAYOUT
LinearLayout layout = new LinearLayout(getApplicationContext());
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);

// TEXTVIEW
// how to set bottom margins programmatically?
layout.addView(tv);

// EDITTEXT
// place the EditText to the bottom of the layout, working well
et.setGravity(Gravity.BOTTOM);
et.setInputType(InputType.TYPE_CLASS_TEXT);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
params.gravity = Gravity.BOTTOM;
et.setLayoutParams(params);
layout.addView(et);

最佳答案

这应该适合你:

// LINEAR LAYOUT
LinearLayout layout = new LinearLayout(getApplicationContext());
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);

// TEXTVIEW
LinearLayout.LayoutParams paramstv = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT,1f);
tv.setLayoutParams(paramstv);
layout.addView(tv);

// EDITTEXT
et.setGravity(Gravity.BOTTOM);
et.setInputType(InputType.TYPE_CLASS_TEXT);

LinearLayout.LayoutParams etparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT,8f);
etparams.gravity = Gravity.BOTTOM;
et.setLayoutParams(etparams);
layout.addView(et);

我想关键是将 EditText 和 TextView 都包装到 LayoutParams 中。也许你必须调整权重。

如果这不起作用,请尝试使用 XML 文件创建布局(那里的处理更容易)。

关于java - 将 TextView 与 EditText 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28372809/

相关文章:

java - 使用 JPA 将包括关系在内的整个表加载到内存中

java - 通过命令行运行在 Eclipse IDE 中编写的使用 anltr3 语法的 java 程序

Java - 标记为私有(private)的字段仍然可以在主函数中更改吗?

java - java中使用构造函数的问题

Android - 在屏幕顶部显示可关闭的对话框(就像在 Chrome 中一样)

java - Java 中 ZLIB 输入流的意外结束

java - jdbc性能

android - 将图像转换为缩略图并保存

android - 将按钮放在屏幕中央

java - 不同尺寸屏幕的布局(Android)