我开发了一个简单的应用程序,其中包含一个textview.and我的问题是我希望在按钮单击事件的隐形文本视图中可见。
在加载时,我这样做
myTextView.setVisible(View.GONE);
之后在Button Click事件中,我这样做。
myTextView.setVisible(View.VISIBLE);
textview是可见的,但它在下面重叠TextView意味着myTextView不能包含空格。那我现在该怎么办?
答案 0 :(得分:5)
使用
myTextView.setVisible(View.INVISIBLE);
而不是
myTextView.setVisible(View.GONE);
在广告中保留空间 .........
答案 1 :(得分:0)
如果您使用的是relativelayout,请在第二个文本视图中指定android:layout_below="id_of_above_text_view"
。
如果你没有在相对布局中指定与视图的关系,它将出现在其他
之上答案 2 :(得分:0)
您的代码稍有变化,我认为它可以正常工作。
myTextView.setVisibility(View.INVISIBLE);
点击按钮后,
myTextView.setVisibility(View.VISIBLE);
要在java代码中执行此操作,请继续(尽管我自己没有尝试过)...
RelativeLayout rl = new RelativeLayout(this);
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.xxx);
TextView txt = new TextView(this);
txt.setText("XXX");
rl.addView(iv,0);
rl.addView(txt,1);
答案 3 :(得分:0)
试试这个:
RelativeLayout layout = new RelativeLayout(this);
TextView tv1 = new TextView(this);
tv1.setText("A");
tv1.setId(1);
TextView tv2 = new TextView(this);
tv2.setText("B");
tv2.setId(2);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.FILL_PARENT);
lp.addRule(RelativeLayout.BELOW, tv1.getId());
layout.addView(tv1);
layout.addView(tv2, lp);
当您更改可见性时,请在myTextView的父视图(此处为布局)或布局的根视图(invalidate()
)上调用layout.getRootView()
答案 4 :(得分:0)
按下相应的按钮时,将显示和隐藏文本。 如果要使用按钮
控制多个文本,这非常有用1)XML文件:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:gravity="center_vertical">
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" >
<Button
android:text="The Origin"
android:id="@+id/btnOrigin"
android:onClick="buttonOnClick"/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" >
<TextView
android:id="@+id/txtOrigin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/about"
android:textColor="#000"
android:textSize="@dimen/text_body"
android:gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:visibility="gone"/>
</TableRow>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:gravity="center_vertical">
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" >
<Button
android:text="Vision"
android:id="@+id/btnVision"
android:onClick="buttonOnClick"/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" >
<TextView
android:id="@+id/txtVision"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/vision"
android:textColor="#000"
android:textSize="@dimen/text_body"
android:gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:visibility="gone"/>
</TableRow>
</LinearLayout>
2)JAVA代码
private TextView txtOrigin, txtVision;
public void buttonOnClick(View view) {
switch (view.getId()) {
case R.id.btnOrigin:
txtOrigin = (TextView) findViewById(R.id.txtOrigin);
txtOrigin.setVisibility(View.VISIBLE);
txtVision = (TextView) findViewById(R.id.txtVision);
txtVision.setVisibility(View.INVISIBLE);
break;
case R.id.btnVision:
txtVision = (TextView) findViewById(R.id.txtVision);
txtVision.setVisibility(View.VISIBLE);
txtOrigin = (TextView) findViewById(R.id.txtOrigin);
txtOrigin.setVisibility(View.INVISIBLE);
break;
}
}