ボタンのあるレイアウトがあります。グラフィカルレイアウトエディタでは、ボタンは幅を埋め、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:それで、いくつかの解決策が以下のコメントで提案されました。しかし、なぜこの効果がそれほど一貫していないのか誰かが説明できますか?ある種の競合状態はありますか?