——a little +
Udacity課程截圖:
儘量保持寬而淺的佈局,完整層級不能超過十級
SIZE:
small
normal
large
density:
ldpi
hdpi
xhdpi
xxhdpi
xxxhdpi
res下部分目錄命令
res/layout
res/layout-sw600dp
res/layout-sw720dp
Supporting Multiple Screen
http://developer.android.com/guide/practices/screens_support.html#ConfigurationExamples
上面三個文件夾
sw:smallest width
layout/activity_main.xml | 對應一般的手機 |
---|---|
layout-sw600dp/activity_main.xml | sw大於等於600dp的設備 |
layout-sw720dp/activity_main.xml | sw大於等於720dp的設備 |
文件們
layout-sw600dp / activity_main.xml
多個Fragment拼成一個Activity(平板 tablet)一個fragment
<fragment android:id="@+id/fragment_forecast" android:name="com.example.android.sunshine.app.ForecastFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2" tools:layout="@android:layout/list_content" />
一個FrameLayout
<FrameLayout android:id="@+id/weather_detail_container" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="4" />
layout / activity_main.xml 一個Fragment(手機)
一個fragment
<fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fragment_forecast" android:name="com.example.android.sunshine.app.ForecastFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" tools:context="com.example.android.sunshine.app.ForecastFragment" tools:layout="@android:layout/list_content" />
MainActivity中
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); boolean mTwoPane; //重要判斷是否含有詳情部分(tablet) if(findViewById(R.id.weather_detail_container) != null){ mTwoPane = true; if(savedInstanceState == null) { //如果savedInstanceState爲null,則利用FragmentManager getSupportFragmentManager().beginTransaction().replace(R.id.weather_detail_container , new DetailFragment() , DETAILFRAGMENT_TAG).commit(); } } else{ mTwoPane = false; }