2017-03-17 8 views
2

私のアプリはハンバーガーメニュー(サイドメニューを開く3つのスタック、下記を参照)を備えています。ほとんどの時間は大変効果的ですが、デバイス上だけでなくシミュレータ上でも消えてしまうことがあります。ハンバーガーのメニューアイコンがコードネームOne App内で消えることがあります

Hamburger menu

それが再び再表示させるには、ユーザーが画面を回転させているが、それはもう消えてハンバーガーメニューを防ぐことはできません。別の画面が回転すると再び表示されます。

明らかに、ハンバーガーアイコンが使用されていた場所をユーザーがクリックしてもサイドメニューを開くことはできません。

問題は再現するのが難しく、ときどき連続して起こることもありますが、ハンバーガーのアイコンやメニューがそのまま残ることもあります。だから私は問題を解決するためにどこを見るかの手がかりを探しています。

どれヒント感謝、

答えて

2

の背景の透明性とそのUIIDを残したので、それがありました背景透明度が255に設定されていても、これまでと同様の問題があり、一貫性がありませんでした。

私の解決策は、ボタンをハンバーガーメニューとして使用し、テーマ1を使用しないようにすることでした。

まず、テーマの定数hideLeftSideMenuBoolを追加してデフォルトのハンバーガーメニューボタンを非表示にして、trueに設定します。

私はサイズに素材アイコンベースを作成するための方法があります。

public static FontImage materialIcon(char charCode, int size, int color) { 
    Font fnt = Font.createTrueTypeFont("native:MainLight", "native:MainLight").derive(Display.getInstance().convertToPixels(size), Font.STYLE_PLAIN); 
    Style s = new Style(color, 0, fnt, (byte) 0); 
    FontImage fm = FontImage.createMaterial(charCode, s); 
    fm.setPadding(0); 
    return fm; 
} 

最後に、私は私のカスタムメニューコマンドを追加して、左のバーの上に置き、sidemenuを開くように設定します。

Command cmdMenu = Command.create("", materialIcon(FontImage.MATERIAL_MENU, 5), evt -> getToolbar().openSideMenu()); 
if (!Display.getInstance().isTablet() && !Toolbar.isPermanentSideMenu()) { 
    getToolbar().addCommandToLeftBar(cmdMenu); 
} 
+0

ありがとう@Diamond、非常に簡単だったので私はあなたの提案に従いました! – HelloWorld

+0

この唯一の欠点は、タブレットデバイスに表示されるメニューボタンです。タブレット端末では、この動作を変更することはできますが、デフォルトで永続的なサイドメニューを使用します。永続的なサイドメニューを持つタブレットにメニューボタンを表示すると、冗長になります。まず、ボタンを追加する前にブール値をチェックします。私の編集された答えを見てください。 – Diamond

+0

あなたが説明した欠点は、シミュレータ(Xoom)に表示されません。私は実際のタブレットデバイスで何が起こるかを調べるためにテストします!とにかくこの答えアドオンのおかげで! – HelloWorld

2

私は過去にそのような問題を持っていたと私は私を何か他のものにForm UIIDを設定し、0

+0

ありがとうございました。 TitleCommandには透明度が0だったので、IT部門は有罪かもしれません。しかし、再現するのが難しいので、彼は@ Diamondの解決策を好みました。 – HelloWorld

関連する問題