1

我开发了一个简单的应用程序,其中包含一个文本视图。我的问题是我希望在按钮单击事件时在不可见的文本视图中可见。

在加载时我这样做

myTextView.setVisible(View.GONE);

然后在按钮单击事件中,我这样做。

myTextView.setVisible(View.VISIBLE);

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

4

5 回答 5

5

采用

myTextView.setVisible(View.INVISIBLE);

代替

myTextView.setVisible(View.GONE);

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

于 2012-06-22T11:03:09.013 回答
0

如果您使用的是相对布局,android:layout_below="id_of_above_text_view"请在第二个文本视图中指定。

如果你没有在相对布局中指定与视图的关系,它将出现在另一个之上

于 2012-06-22T11:09:38.387 回答
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);
于 2012-06-22T11:12:36.590 回答
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);

当您更改可见性时,调用invalidate()myTextView 的父视图(此处为布局)或布局的根视图(layout.getRootView()

于 2012-06-22T11:29:25.047 回答
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;
                }
             }
于 2016-04-22T10:33:52.207 回答