2

強制的に表示される画面レイアウトがありますpotrait mode。これは非常に複雑なため、今は 用に別のものを作成するために投資する時間がありませんlandscape mode。また、私のタイプのアプリケーションではあまり意味がありません。

ただし、入力フィールドには を提供することをお勧めしますlandscape mode。これは、一部の携帯電話にはハードウェア キーボードがあり、携帯電話が自動的に横向きに配置されるため、まだ にあるアプリが見づらくなるためですportrait mode

これに対する私の解決策は、すべてのテキスト入力をダイアログに入れ、ダイアログが再び閉じられるまで一時的に横向きモードを有効にすることです (ユーザーが要求した場合)。

これは完全に機能します。オーバーレイ検索ウィジェットを除く (アプリケーションから検索ボタンを押したとき)。私は 2 つのコールバックを探しています。またはキャンセル - どちらの場合でも機能する必要があります)。

助言がありますか?

4

2 に答える 2

3

Activity検索がアクティブになったときのコールバックがあります。onSearchRequested()

検索ウィジェットを閉じる/キャンセルするために、次の方法でリスナーを追加できますSearchManager

次の方法で参照を取得しますSearchManager

context.getSystemService(Context.SEARCH_SERVICE)

見るgetSystemService()

于 2010-12-14T19:07:29.013 に答える
1

検索ウィジェットを使用する場合、関連するアクション バー メニュー項目で OnActionExpandListener を使用できます。これは、API バージョン 14 未満の AppCompat サポート ライブラリでもうまく機能します。

OnActionExpandListenerには 2 つのメソッドがあります。

  • onMenuItemAction折りたたみ
  • onMenuItemActionExpand

以下のコード例を参照してください。

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

    MenuItem searchItem = menu.findItem(R.id.action_search);

    MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener(){

        @Override
        public boolean onMenuItemActionCollapse(MenuItem item) {
            KLog.i(TAG, "onMenuItemActionCollapse");
            return true;
        }

        @Override
        public boolean onMenuItemActionExpand(MenuItem item) {
            KLog.i(TAG, "onMenuItemActionExpand");
            return true;
        }

    });

    mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);

    mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

サポート ライブラリを使用しない場合は、メニュー項目で OnActionExpandListener を直接使用します。

于 2014-03-03T17:59:53.523 に答える