1

私は sherloackActionBar を使用しており、メニューを常に表示しています。デバイスを縦向きから横向きに変更し、もう一度縦向きに変更すると、メニューがロックされます (オプションをクリックできません)。再度向きを変更すると、以前のメニュー クリック アクションが機能し始めます。この問題は、一度しか発生しないため、私には非常に奇妙に見えます(最初に実行したときは正常に機能します)。

属性などを追加する必要がある場合は、誰か助けてください。私によると、問題の根本原因と思われる android:configChanges="orientation|screenSize" を使用しています。間違っている場合は修正してください。

ありがとうございました。

4

1 に答える 1

0

この質問でジェイク・ウォートン自身が答えたよう

ActionBarSherlock は、アクティビティのコンテンツ ビュー内に存在する互換性レイヤーです。これは、ウィンドウ内にあるが通常のコンテンツ ビューの外にあるネイティブ アクション バーとは少し異なります。

このため、向きの変更を処理することをマニフェストで宣言すると、それ自体を適切に再作成できません。ABS がアクション バー ビューを再作成しないようにすると、ほとんどの場合、画像のような目に見えるアーティファクトが発生します。

TL;DR: configChanges="orientation" では ActionBarSherlock が機能しません

しかし、私は最近、この同じ問題を明らかに解決した幸運な状況に陥っていることに気付きました。

これで確実に直るかどうかはわかりませんが、アクションバーのスタイルでタブにPADDINGを設定しておけば問題はなくなり、普通にタブをクリックできるようになります。

特にTabViewスタイルに使用したコードを次に示します(このスタイルジェネレーターを使用しました)

<style name="Widget.Styled.ActionBarTab" parent="@style/Widget.Sherlock.ActionBar.TabView">
    <item name="android:background">@drawable/tab_indicator_ab</item>
    <item name="background">@drawable/tab_indicator_ab</item>        
    <item name="android:paddingLeft">5dp</item>
    <item name="android:paddingRight">5dp</item>
</style>

試してみて、うまくいったかどうかをお知らせください。これを確認すれば、有望な解決策になるかもしれません。

于 2013-07-04T13:49:15.533 に答える