1.解析服务器返回的json
解析譬如{"status":"-100003","msg":"用户名不存在!","data":""}
这样的json,最好让服务器返回{"status":"-100003","msg":"用户名不存在!","data":"{}"}
,重点是data字段的内容,要有{}
,不然gson会认为data的字段是字符串,而不是你指定的类型,徒增麻烦。
2.DrawerLayout抽屉显示全屏
DrawerLayout的源码里写死了private static final int MIN_DRAWER_MARGIN = 64; // dp
,在布局文件里,Navigator部分里的属性layout_marginLeft/Right设置为-64dp,另需要设置android:fitsSystemWindows="true"
,以及设置layout_width为match_parent。
2.1 抽屉使用NavigationView
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
android:layout_marginRight="-64dp"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"/>
2.2 抽屉使用<fragment>
使用fragment的话会稍微麻烦一点,除了NavigationView需要做的之外,还需要目标fragment加载的布局文件的根view添加
android:layout_marginLeft=-64dp
android:fitsSystemWindows="true"
android:layout_width="match_parent"
不然不会起作用。
2.3 抽屉使用<include>
使用<include>作为Drawer的话跟使用NavigationView是一样一样的。
3.不要重复setContentView
比如Activity的setContentView和DataBinding的DataBindingUtil.setContentView,不要重复调用一个xml文件。