我的应用仅在有网络连接时才有效。所以,我在应用启动和恢复时检查相同的内容。
我有一个广播接收器,可以监听网络变化。
如果没有网络,我想显示简单的“无网络连接”视图。 “无网络连接”包含一个文本视图,表明没有带有悲伤面孔的互联网。
当网络可用时,我想从广播接收器中将“无连接视图”更改为我的“信息中心”视图。
“仪表板”视图包含应用程序的主要业务逻辑和工作流程。
因此,根据网络状态,活动在两个视图之间振荡。
实现这一目标的最佳方式是什么?
案例1:这两种观点都有自己的活动。 问题:我需要处理“无连接”视图的背压和生命周期事件,这些事件是多余的。
案例2:一项活动,并根据网络状态动态使用切换视图
案例3:在同一个xml文件中有两个布局(相对布局)。根据状态打开/关闭可见性。
案例4:使用Inflater动态切换视图。
提前致谢。
答案 0 :(得分:0)
使用一个包含两个片段的活动:Connect Status Fragment,Dashboard Fragment
private void showFramentDepends(){
if(networkisfine){
// init your fragmnet
switchFragment(ConnectStatusFragment);
}else{
switchFrament(DashboardFragment);
}
}
private void switchFragment(Fragment fragment){
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.replace(R.id.content_fragment, fragment);
ft.commit();
}
并且你的活动布局xml文件应该是这样的:
<FrameLayout
android:id="@+id/content_fragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</FrameLayout>