![](/img/trans.png)
[英]Adjust(Resize) the Copy/Paste action bar context menu on ICS phones/tablets
[英]Action Bar in Fragments - Tablets and Phones
我正在創建一個使用片段的應用程序,以實現UI靈活性。
在“電話縱向和橫向”模式下,fragmnets的外觀如下:
在Tablets縱向和橫向模式下,其顯示如下:
我主要關心的是ACTION BAR。 我只想在“片段B”顯示為“全屏”的LANDSCAPE模式下隱藏SMARTPHONE的操作欄。 我想在所有其他情況下都顯示操作欄,如我在圖像中所示。
我搜索了整個堆棧溢出,但未找到任何解決方案。 誰能幫我? 提前致謝。
要解決此問題,您需要做兩件事:
在res
文件夾內創建一個名為values-sw600dp
的新資源文件夾。 (這僅適用於3.2之前的Android版本,對於以前的版本,請創建values-xlarge
文件夾)
然后在這里我們創建一個文件並設置以下值:
<resources>
<bool name="isTablet">true</bool>
</resources>
然后,在標准值文件(如res / values /)中,將此類布爾值設置為false:
假
現在,您可以檢查您是否在平板電腦大小的設備中運行:
boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
if (tabletSize) {
// do a
} else {
// do b
}
在檢查您是否使用智能手機或平板電腦(使用your-new-resource-file.xml)之后,在fragmentB
onCreateView
方法中,我們必須檢查方向。 如果方向是LANDSCAPE,則我們隱藏操作欄。
boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
if (!tabletSize)
{
//Lets check orientation
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
getActivity().getActionBar().hide(); //getSupportActionBar().hide() if using appcompat
}
}
希望能幫助到你
我已使用此代碼檢查我們是在SMARTPHONE還是TABLET中:
// Function to check if we are inside Phone or Tablet
public static boolean isTablet(Context context) {
Boolean tablet = (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;
return tablet;
/* Returns TRUE if we are in TABLET
*
* Returns FALSE if we in PHONE
*
*
* */
}
然后,如果我在手機內:我使用以下代碼檢查屏幕方向:
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
getActivity().getActionBar().hide(); //getSupportActionBar().hide() if using appcompat Library
}else{
getActivity().getActionBar().show();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.