2016-03-28 7 views
1

私はAppCompatテーマを使用しているアプリと、アプリ名とsearchViewを持つカスタムツールバーを持っています。電話機サイズの画面でsearchViewを開くと、アプリケーション名のtextViewとsearchViewの両方のための十分なスペースがないため、ツールバーを垂直方向に拡張して悪く見えます。この問題を解決するにはSearchViewが重複している場合は、ツールバーでアプリ名を非表示にします

searchViewが開いたとき、私は、アプリ名でのTextViewを削除します。

searchView.setOnSearchClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     title.setVisibility(View.GONE); 
    } 
}); 

そしてsearchViewが閉じたときに、それをバックブリーク:

searchView.setOnCloseListener(new SearchView.OnCloseListener() { 
    @Override 
    public boolean onClose() { 
    title.setVisibility(View.VISIBLE); 
     return false; 
    } 
}); 

をしかし、より大きな画面上をデバイスは、タブレットのように、これは必要ではなく、ちょうど消えている名前は奇妙に見えます。

searchViewを開く余裕があるかどうかを確認し、必要な場合にのみアプリ名を削除する方法はありますか?おそらく画面サイズ、dpiなどでこれを行うことができますが、このシナリオを検出するには、より良い方法があるのだろうかと思います。

答えて

0

1つの解決策と単純なものがconfiguration qualifiersを使用しています。 boolean値をvaluesフォルダ名に格納することができます(例:hasEnoughWidth)。falseに設定します。十分な幅を持っていると思うスクリーンサイズに別のブーリアン値を設定すると、例えば最小幅が400dpとなる場合があります。したがって、同じ名前の変数をフォルダvalues-w400dpに格納し、trueに設定します。それからちょうどそのboolean値を読んで、それを決めてください。これはタブレットや電話を検出するために多く使用される一般的な手法です。

関連する問題