2013-11-26 8 views
5
でSearchViewとアクティビティタイトル

非常に簡単な質問:は、アクションバー

私はのMenuItemのカップルを持っているアクションバー(なしシャーロック)ここでAndroidのデフォルトを使用しています。そのうちの1つは、一般的な検索シナリオのための折りたたみ可能なアクションビュー(android:showAsAction="collapseActionView|always")です。ユーザーがアイコンをクリック→検索ボックスが展開→ユーザーが何かを入力すると、queryQueryTextChangeはその魔法を行います)。

SearchView sv = new SearchView(this); 
sv.setLayoutParams(new ActionBar.LayoutParams(Gravity.RIGHT)); 
// Yada, yada... 
sv.setOnQueryTextListener(new OnQueryTextListener() { 
    // The methods for onQueryTextSubmit and onQueryTextChange ... they apply filtering on the activity's list adapter and apparently work fine 
} 
menuItem.setActionView(sv); // menuItem is the item for the search action 
searchAnswers.setOnActionExpandListener(new OnActionExpandListener() { 
    // The listener's methods for expand/collapse as I need some business logic behind them 
} 

上記のすべてが問題ありません。

デバイスがポートレートモードになっていて画面スペースが限られている場合、SearchViewは他のMenuItem(android:showAsAction="ifRoom")を隠し、アクティビティのタイトルもOKです。

問題が消滅し(私が再び、細かい)デバイスは、(フリーアクションバースペースがまだありますように)ランドスケープモードにある場合、SearchViewは全体のアクションバーを占有していないということですが、活動のタイトル(ただし、表示できるスペースは十分ですが)ですから私の問題は、アクティビティのタイトルを表示できるこの空きスペースが得られることです。

拡大する前に: Has the activity title.

展開した後: So much free space I could rent it.

(両方のスクリーンショットは、ランドスケープモードで携帯電話からのもののAndroid 4.0.4と4.3でテストされています。)

十分なスペースがあるときにアクティビティのタイトルを保持する方法に関するヒント?

答えて

1

まだこの問題への回答が見つかったのかどうかはわかりません。しかし、このスレッドの回答が見つかりました。それは確かに私を助けました。

ActionBar SearchView not fully expanding in landscape mode

リンクからコピーしたコード:

searchView.setOnSearchClickListener(new OnClickListener() { 
    private boolean extended = false; 

    @Override 
    public void onClick(View v) { 
     if (!extended) { 
     extended = true; 
      LayoutParams lp = v.getLayoutParams(); 
      lp.width = LayoutParams.MATCH_PARENT; 
     } 
    } 
}); 
+0

このリンクは質問に答えるかもしれないが、ここでは答えの重要な部分が含まれており、参考のためにリンクを提供することをお勧めします。リンクされたページが変更された場合、リンクのみの回答は無効になります。 – calvinf

+0

こんにちは@calvinf、チップのおかげで。編集します:) – Jun

+0

Junさんありがとうございます。質問はアクティビティのタイトルを保持することに関するものです(SearchViewを親に記入する方法はあまりありませんが)、質問の年齢を指定すると、あなたの答えは十分に見えます。 – user1987392

0
searchView.setMaxWidth(Integer.MAX_VALUE); 
関連する問題