1

私は1つのテキストビューを含むシンプルなアプリを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

relativelayout を使用している場合はandroid:layout_below="id_of_above_text_view"、2 番目の textview で指定します。

相対レイアウトでビューとの関係を指定しないと、上下に表示されます

于 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 に答える