2016-03-28 21 views
1

AppCompat temasını ve uygulama adına ve bir searchView'e sahip özel bir Araç Çubuğunu kullanan bir uygulamam var. SearchView, telefon boyutunda bir ekranda açıldığında, hem uygulama adı hem de açık olan searchView ile textView için yeterli alan yoktur, bu yüzden araç çubuğunu dikey olarak genişletir ve kötü görünür.SearchView örtüşüyorsa ToolBar'da uygulama adını gizle

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

Ve SearchView kapandığında geri brik:

Bunu düzeltmek için SearchView açtığında, ben app adıyla TextView'un kaldırmak

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

Ancak daha büyük bir ekranda, Cihaz, bir tablet gibi, bu gerekli değildir ve sadece ortadan kaybolan isim garip görünüyor.

SearchView öğesinin açılması için bir yer olup olmadığını kontrol etmenin ve uygulama adını yalnızca gerekirse kaldırmanın bir yolu var mı? Bunu muhtemelen ekran boyutu, dpi veya bunun gibi bir şeyle yapabileceğimi biliyorum, ancak bu senaryoyu tespit etmenin daha iyi bir yolu olup olmadığını merak ediyorum.

cevap

0

Tek bir çözüm ve basit olan configuration qualifiers kullanıyor. boolean değerini values klasörünüze kaydedebilirsiniz, örneğin hasEnoughWidth ve false olarak ayarlayın. daha sonra yeterli genişliğe sahip olduğunu düşündüğünüz ekran boyutuna başka bir boole değeri, sadece örneğin 400dp minimum genişliğinin iyi olabileceğini tahmin edin. boolean değişkenini values-w400dp klasöründe aynı ada sahip olarak saklayın ve true olarak ayarlayın. o zaman sadece boolean değerini okuyun ve ona karar verin. Bu, tablet veya telefon tespit etmek için çok kullanılan yaygın bir tekniktir.