0

ボタンがクリックされたときにテキストサイズを変更しようとしています。xml:

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:text="hello_world"

   android:textSize="30sp"
   android:layout_margin=""/>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="72dp"
    android:layout_toLeftOf="@+id/textView1"
    android:text="Button1" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button1"
    android:layout_toRightOf="@+id/textView1"
    android:text="Button2" />

これは私のコードです:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txtmain=(TextView)findViewById(R.id.textView1);
    txtmain.setTextSize(TypedValue.COMPLEX_UNIT_SP ,30);

    //txtmain.setTextSize(TypedValue.COMPLEX_UNIT_SP ,30);

    txtmain.setTextAppearance(getApplicationContext(), 12);
    btn1=(Button)findViewById(R.id.button1);
    btn2=(Button)findViewById(R.id.button2);
    txtmain.setBackgroundColor(Color.YELLOW);
    btn1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            txtmain=(TextView)findViewById(R.id.textView1);


            txtmain.setTextSize(TypedValue.COMPLEX_UNIT_SP ,30);
            System.out.println("txtmain get height:"+txtmain.getHeight());
            //Toast.makeText(getApplicationContext(),"txtmain get 
            //height:"+txtmain.getHeight() , Toast.LENGTH_LONG).show();
        }
    });

    btn2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            txtmain=(TextView)findViewById(R.id.textView1);

            txtmain.setTextSize(TypedValue.COMPLEX_UNIT_SP ,80);
            System.out.println("txtmain get height:"+txtmain.getHeight());
            //Toast.makeText(getApplicationContext(),"txtmain get 
             //height:"+txtmain.getHeight() , Toast.LENGTH_LONG).show();
        }
    });

ボタン1をクリックすると適切な出力が得られますが、ボタン1をクリックした後にボタン2をクリックすると出力が変わります。

これが私の出力です:

ここに画像の説明を入力

ここに画像の説明を入力 ここに画像の説明を入力

4

3 に答える 3

1

これは、ICS の既知の問題と非常によく似ているようです。https://code.google.com/p/android/issues/detail?id=22493およびhttps://code.google.com/p/を参照してください。 android/issues/detail?id=17343 . これらの 2 番目は、回避策としてテキスト ビューのテキストに「\n」を追加することを示唆しています。それらのページとそれらがリンクしているページを読むと、問題の解決に役立つ場合があります。

于 2013-05-08T12:59:50.777 に答える
1

問題は

 txtmain.setHeight(41);

最初のボタンクリックで、テキストビューの高さがWRAP CONTENT 固定サイズに変更されます。外すだけ..

于 2013-05-08T10:51:31.590 に答える