android - TextView 和 EditText 在 LinearLayout 中被截断

标签 android android-layout android-edittext android-view textview

我有一个水平方向的 LinearLayout,我在其中动态添加了一些 TextView 和 EditText。我的问题是当 TextView 很长时,它被切断(按高度)并且 EditText 不可见。

向 View 添加填充并没有解决问题。设置 LinearLayout minHeight 值时,TextView 正确显示,但 EditText 仍然不可见。

<LinearLayout
        android:id="@+id/content_content"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"></LinearLayout>

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                            LinearLayout.LayoutParams.WRAP_CONTENT,
                            LinearLayout.LayoutParams.WRAP_CONTENT);

for (int i = 0; i < cntCount; i++) {
    TextView cntView = new TextView(getActivity());
    cntView.setLayoutParams(params);
    cntView.setText(cnt.get(i));

    contentContentView.addView(cntView);

    EditText answerView = new EditText(getActivity());
    answerView.setLayoutParams(params);
    answerView.setId(i);
    answerView.setHint("......");

    contentContentView.addView(answerView);

}

编辑

我找到了解决方案并创建了一个库。感兴趣的可以下载here

最佳答案

您的 LinearLayout 具有“水平”方向 - 它将在当前 View 的右侧添加下一个 View 。这意味着如果 TextView 环绕(填充父级),则 LinearLayout 中没有任何其他 View 的空间将在屏幕上可见(它们将被添加到可见布局的右侧)。

如果您尝试将 EditText 与一系列 TextView 放在同一行,那么您将需要创建自定义 TextView 和布局。这需要对 EditText 的位置和大小进行测量,这不是 Android 的标准。

这篇文章可能会有所帮助:How to overlay EditText on TextView just after the end of text

关于android - TextView 和 EditText 在 LinearLayout 中被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30446955/

相关文章:

android - 透明背景 imageview 使它上面通常不透明的文本也变得透明。我该如何解决?

android - 如何将协调器布局包装在 LinearLayout 中?

Android App UI设计: WhatsApp like Tabs

java - 如何通知跨度已更改的 EditText,而无需重新读取整个字符串

java - 为什么单选按钮无法处理此代码?

android点击屏幕的波纹效果

android - 如何在android中连续删除键盘退格长按上的字符

android - android模拟器有真正的解决方案吗?

java - 从 C 到 Java 的类型转换

android - Tomcat 7 服务器在 Eclipse 中不可见