服务器返回的json;DrawerLayout;setContentView

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文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容