1

Button は素早いタップに奇妙に反応します (クリックはボタン内のテキストのみを変更することになっています) : テキストが非常に小さい場合でも、サイズが大きくなり、サイズが変更されます。

それをタップして、0.5 秒ほど押したままにしてから指を離すと、minWidth 属性が尊重されます。

「ロングタップ」で元の大きさに戻り、「ショートタップ」で拡大できます。毎回動作します。

この問題は 4.0+ では再現できませんが (一生懸命試したことはありません)、2.3.X デバイスでは常に発生するようです (2.3.5 の HTC Desire S と 2.3.6 の Galaxy S2 で試しました)。 )。

以下は、このボタンに関連する xml コードです。

    <Button
    android:id="@+id/header_left_button"
    android:layout_width="wrap_content"
    android:layout_height="@dimen/very_small_item_height"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_marginLeft="10dip"
    android:background="@drawable/btn_nav_background"
    android:minWidth="70dip"
    android:paddingLeft="5dip"
    android:paddingRight="5dip"
    android:textColor="#FFFFFF"
    android:textSize="9sp"
    android:visibility="gone" />

そして OnClick リスナー:

mBtnTextHeaderLeft.setOnClickListener(new OnClickListener() {

  @Override
  public void onClick(View v) {
        mBtnTextHeaderLeft.setText("OK");
});

何かご意見は ?

編集 :

セレクターは次のように定義されます。

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/btn_map_bottom_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/btn_map_bottom_normal" android:state_enabled="true"/>
</selector>

編集 2: 以下は、ボタンの 2 つの状態のスクリーンショットです (申し訳ありませんが、画像を直接追加するのに十分な評判がありません...):

通常サイズ(ボタンがまだタップされていない場合、またはボタンを「ゆっくり」タップした場合)

サイズのバグ(ボタンが「すばやく」タップされた場合)

4

1 に答える 1

0

ケースにロックを使用してみてください

ReentrantLock lock = new ReentrantLock();
mBtnTextHeaderLeft.setOnClickListener(new OnClickListener() {

  @Override
  public void onClick(View v) {
        if (lock.tryLock()) {
            try {
         mBtnTextHeaderLeft.setText("OK");

       } catch (Exception e) {
            } finally {

                lock.unlock();
            }
});
于 2013-09-24T13:22:22.793 に答える