2016-03-28 39 views
1

我有一個應用程序使用AppCompat主題和自定義工具欄,它具有應用程序名稱和searchView。當searchView在手機大小的屏幕上打開時,textView與應用程序名稱以及打開的searchView都沒有足夠的空間,所以它會垂直擴展工具欄,看起來很糟糕。如果SearchView覆蓋它,在ToolBar中隱藏應用程序名稱

爲了解決這個問題,我刪除與應用程序名稱的TextView的搜索查看打開時:

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

而且布里格它回來的時候搜索查看關閉:

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

然而,在大屏幕上設備,就像平板電腦一樣,這不是必要的,名字剛剛消失看起來很奇怪。

有沒有辦法檢查是否有空間讓searchView打開,並且只在必要時刪除應用程序名稱?我知道我可以通過屏幕大小,dpi或類似的方式來做到這一點,但我想知道是否有更好的方法來檢測這種情況。

回答

0

一個解決方案和簡單的一個是使用configuration qualifiers。您可以將boolean值存儲在您的values文件夾名稱中,例如hasEnoughWidth並將其設置爲false。然後另一個布爾值來屏幕大小,你認爲它有足夠的寬度,只是猜測它,例如最小寬度400dp可能是好的。因此,在文件夾values-w400dp中存儲一個boolean變量,並將其設置爲true。那麼只要讀取boolean的價值並作出決定即可。這是用於檢測平板電腦或手機的常用技術。