在单击之前,TextView不可见

时间:2016-03-10 14:40:36

标签: java android email textview

我必须根据应用从网络获取的信息生成布局。有时,它可能有电子邮件地址,如果它们对于可用空间太长,我可能需要截断它们。

我的问题是我可以截断它们并使它们符合我需要的尺寸,但是在我点击它们之前它们将不可见..:S

这是我的电子邮件文字视图的代码:

TextView noneText = new TextView(getActivity());
noneText.setWidth(width);
noneText.setSingleLine(true);
noneText.setTextSize(cell.getCSS().getTextSize() + 4);
noneText.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.NORMAL));
noneText.setText(cell.getText());
if(cell.getType() == AutoActionElement.AutoGridActionElementType.EML){
    // Email
    noneText.setAutoLinkMask(Linkify.EMAIL_ADDRESSES);
    noneText.setMovementMethod(LinkMovementMethod.getInstance());
}
if (displayedAutogrid.getColumn(cellNo).isTruncated()) {
    noneText.setEllipsize(TextUtils.TruncateAt.END);
    noneText.setLines(1);
}
noneText.setGravity(Gravity.CENTER_VERTICAL | cell.getCSS().getGravity());
noneText.setPadding(noneText.getPaddingLeft(), padding, noneText.getPaddingRight(), padding);
layout.addView(noneText);

由于

修改它可以正常使用电话号码。它们被截断并显示但不是电子邮件......

编辑目前,我将更改我的方法,如果被截断,则不会使文本可点击,因为可以查看电子邮件可用的信息的详细视图。通过查看详细视图,电子邮件将完全显示。单击包含某些信息(以及截断的电子邮件)的布局将导致详细视图。 我仍然在寻找答案,不是在我的应用程序中使用,而只是为了我的Android知识!

2 个答案:

答案 0 :(得分:0)

这是由于应用主题,我认为你正在使用v7 compact ... 尝试使用AppCompatTextView类或指定TextColor ...

我更喜欢从XML中扩展简单的Widget,以保留应用程序主题并避免在JAVA中重复使用UI初始化代码。

创建xml布局文件:none_textview.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="@style/TextAppearance.AppCompat.Large"
    android:autoLink="all">
</TextView>

从Java代码执行:

TextView noneText = (TextView) LayoutInflater.from(getActivity()).inflate(R.layout.none_textview ,layout,false);

答案 1 :(得分:-1)

您是否将此代码块放在onCreateView中?如果是,您可以尝试将其放入onCreate方法。