2012-06-22 30 views
1

我开发了一个简单的应用程序,其中包含一个textview.and我的问题是我希望在按钮单击事件中隐形的这个文本视图中可见。如何使textview在android中的按钮单击事件中可见

在加载时我做这个

myTextView.setVisible(View.GONE); 

,并在此之后,在按钮单击事件,我这样做。

myTextView.setVisible(View.VISIBLE); 

该textview是可见的,但它重叠在下面的TextView意味着myTextView不能包含空间。那么我现在能做什么?

+0

在这个应用程序,我使用后你的XML布局代码在这里 –

+0

只有xml文件中的布局,并且所有代码textview都是在java代码运行库中生成的,此代码位于下面的代码中:下面的代码是新的TextView(myContext); txtAnsBorrow.setId(k + 2); txtAnsBorrow.setVisibility(View.GONE); \t \t \t \t \t \t \t RelativeLayout.LayoutParams ansBorrowlayout = new RelativeLayout.LayoutParams(LayoutParams。WRAP_CONTENT,LayoutParams.WRAP_CONTENT); –

+1

我们需要xml文件中的布局.... –

回答

5

使用

myTextView.setVisible(View.INVISIBLE);

,而不是

myTextView.setVisible(View.GONE); 

坚持的空间布局.........

+0

但是这是可能的,当我做是不可见的(使用GONE)比空间是删除,当我使用setVisible(View.Visible)比空间重新分配其可能? –

+0

是非常多的这个你需要纠正你的布局....... –

+0

什么修正? –

0

如果您正在使用的RelativeLayout,在第二个文本视图中指定android:layout_below="id_of_above_text_view"

如果你不指定关系中相对布局的意见后,会出现一个以上的其他

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); 
+0

我也做到这一点,但我想隐瞒不只有textview,但也tetxview包含空间? –

+0

在这种情况下,转到您的xml文件并在组件的代码中提及属性android:layout_below =“idOfYourTextView”,该组件的代码与TextView顶部重叠。 – Swayam

+0

,但我从来没有使用textview的XML文件,我在Java文件中创建它可能吗? –

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的父视图(此处布局)或布局的根视图(layout.getRootView())上调用invalidate()

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; 
       } 
      } 
相关问题