-1

ボタンのあるレイアウトがあります。グラフィカルレイアウトエディタでは、ボタンは幅を埋め、wrap_contentの高さを持ち、テキストにパディングを与えます(通常のボタンと同じように)。ただし、このレイアウトでアクティビティを起動すると、ボタンがテキストを緊密に折り返すことを決定することがあり、非常に小さな細いボタンになります。

私が時々言うとき、私は時々、私のアプリでまったく同じアクションを実行すると、この結果が生成される場合と生成されない場合があることを意味します。

この問題は、これが起動されたアクティビティ、つまりカメラプレビュー付きのアクティビティに関連していると思います。他の人が行っているように、このアプリは、垂直コンポーネントを備えた横向きのレイアウトを使用して、電話を縦向きに保持しているときに正しく見えるようにします(混乱していますが、api7をサポートしたいと思います)。

それで、私の問題のあるアクティビティ/レイアウトはこれから開始されcameraActivity、その過程で方向が変わります。これが問題の原因だと思います。

ボタンのレイアウトがあります:

<Button android:id="@+id/ContinueBtn"
    android:text="@string/btn_continue"
    style="@style/main_button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:typeface="normal"
    android:onClick="onButtonAction"
    android:background="@drawable/button_animated" >
</Button>

参考までに、このボタンを含むレイアウトを設定する前に、アクティビティは縦向きに設定されます。

要約すると、私は時々、薄くて幅の広いボタンを手に入れています。他の時には、私は正常で、健康で、飢えていないボタンを手に入れています。これは画面の向きが変わったためだと思います。向きが変わると、レイアウトエンジンがボタンのデフォルトのパディングを見逃してしまうことがあるようです。私の質問は、最初に、これを引き起こしているのは何ですか?私は正しいですか?第二に:どうすればこれを防ぐことができますか?


また、これは画像のカスタム背景と関係があると思います。デフォルトのボタンでは実現できませんでした。

また、ここに問題のいくつかの画像があります: 空腹のボタン すべてのパイボタンを食べた人 EDIT2:それで、いくつかの解決策が以下のコメントで提案されました。しかし、なぜこの効果がそれほど一貫していないのか誰かが説明できますか?ある種の競合状態はありますか?

4

1 に答える 1

0

この問題のいくつかの解決策を提案してくれたEspiandevとWasaigに感謝します。私の問題は、ボタンのセレクターにある'constantSzie = "true"'にあることが判明しました(確かに、元の質問では提供しませんでした。

これをオフにすると、問題が修正されます(コメントで言及されている他の2つの解決策のいずれかが修正されます)。

ただし、現状では、constantSizeは機能していません(私の理解では)。コードのどこかに一定のサイズを取得するバグがあると思います(ここでソースコードを調べましたが、すぐに間違っているものを見つけることはできません:http: //grepcode.com/file/repository.grepcode.com/ java / ext / com.google.android / android / 4.0.3_r1 / android / graphics / drawable / DrawableContainer.java#DrawableContainer.DrawableContainerState.computeConstantSize%28%29)。本質的なサイズが「-1」として返されているのではないかと思います。

バグを生成したサンプルプロジェクトを含むAndroidバグレポートをここに送信しました: http ://code.google.com/p/android/issues/detail?id = 36432

于 2012-08-17T11:10:45.747 に答える