我的目标是隐藏文本并保持textview占据活动中的空间,我使用以下内容将我的文本设置为不可见:
tv.setVisibility(View.INVISIBLE);
当点击按钮显示文本时,除了我的代码结果导致整个textview不仅隐藏文本外,每个东西都工作正常,因为我将textview背景设置为可绘制的形状,在文本周围形成红色边框:
android:background="@drawable/border1"
<TextView
android:id="@+id/introclusion_tv3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border1"
android:textSize="20sp" />
当启动应用程序时,你只能看到空白区域,按钮点击后会填充文本但是没有边框(来自形状背景),所以它隐藏了整个textview,我需要它只隐藏文本并保持文本设置为INVISIBLE时显示其背景的textview,
任何帮助都将非常感谢,谢谢。
这就是我做到的:
TextView tv11=(TextView)findViewById(R.id.introclusion_tv3);
tv11.setText(Html.fromHtml(getString(R.string.introclusion_one)));
tv11.setVisibility(View.INVISIBLE);
然后在单击但写入正确的密码后,将文本显示为:
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
dialogButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
EditText password = (EditText) dialog.findViewById(R.id.password);
if( password.getText().toString().length() > 0 ) {
if( password.getText().toString().equals("test")) {
TextView tv11=(TextView)findViewById(R.id.introclusion_tv3);
tv11.setTypeface(FontFactory.getBFantezy(getBaseContext()));
tv11.setText(Html.fromHtml(getString(R.string.introclusion_one)));
tv11.setVisibility(View.VISIBLE);
}
答案 0 :(得分:2)
透明文字颜色隐藏文字:
<TextView
android:id="@+id/introclusion_tv3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border1"
android:textColor="@android:color/transparent"
android:textSize="20sp" />
如果要显示文字,请使用方法setTextColor()
以编程方式更改文字颜色:
tv11.setTextColor(color);
答案 1 :(得分:2)
// try this way
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/border1">
<TextView
android:id="@+id/introclusion_tv3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp" />
</LinearLayout>
答案 2 :(得分:1)
你可以做一个简单的技巧:写两个字符串
让我们在你的第一段和第二段代码中删除这一行
tv11.setVisibility(View.INVISIBLE);
和
tv11.setVisibility(View.VISIBLE);
所以它将是
TextView tv11=(TextView)findViewById(R.id.introclusion_tv3);
tv11.setText(Html.fromHtml(getString(R.string.introclusion_one)));
然后在第二部分写下如下;
if( password.getText().toString().equals("test")) {
TextView tv11=(TextView)findViewById(R.id.introclusion_tv3);
tv11.setTypeface(FontFactory.getBFantezy(getBaseContext()));
tv11.setText(Html.fromHtml(getString(R.string.introclusion_one_appear)));
}
其中第一个字符串为空
<string name="introclusion_one">
和第二个字符串,你将在其中写下你的文字
<string name="introclusion_one_appear">
希望能帮到你。
答案 3 :(得分:0)
将文本视图中的内容保存为如下字符串:
String x = (String)tv11.getText();
然后将文本视图设为空:
String x = "";
for(int i = 0; i < x.length(); i++){
x +=" ";
}
tv11.setText(x);
再次显示textview:
tv11.setText(x);