在LinearLayout中切断TextView和EditText

时间:2015-05-25 22:45:28

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

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

为视图添加填充并没有解决它。设置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

2 个答案:

答案 0 :(得分:1)

您可以为EditText和TextView设置layout_weights,而不是使用wrap_content作为layout_width。这样可以确保始终显示EditText。

答案 1 :(得分:1)

您的LinearLayout的方向为&#34;水平&#34; - 它会在当前视图的右侧添加下一个视图。这意味着,如果TextView换行(填充父级),则LinearLayout中的任何其他视图都无法在屏幕上显示(它们将添加到可见布局的右侧) )。

如果您尝试将EditText与一系列TextView放在同一行中,则需要创建自定义TextView和布局。这需要对有关Android不标准的EditText的展示位置和尺寸进行测量。

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