【问题标题】:How to Show Network Connectivity Status to User如何向用户显示网络连接状态
【发布时间】:2013-02-23 15:33:15
【问题描述】:

我的应用程序只有在有网络连接的情况下才能工作。因此,我在应用程序启动和恢复时检查是否相同。

我有一个监听网络变化的广播接收器。

如果没有网络,我想显示一个简单的“无网络连接”视图。 “无网络连接”包含一个文本视图,说明没有悲伤的脸的互联网。

当网络可用时,我想从广播接收器将“无连接视图”更改为“仪表板”视图。

“仪表板”视图包含应用的主要业务逻辑和工作流程。

因此,根据网络状态,活动在两个视图之间摆动。

实现这一目标的最佳方法是什么?

案例 1: 两个视图都有自己的活动。 问题:我需要处理多余的“无连接”视图的后压和生命周期事件。

案例2:一项活动并根据网络状态动态使用切换视图

案例 3: 在同一个 xml 文件中有两个布局(相对布局)。根据状态打开/关闭可见性。

案例 4: 使用 Inflater 动态切换视图。

提前致谢。

【问题讨论】:

    标签: android android-layout android-view layout-inflater


    【解决方案1】:

    使用一个activity和两个fragment:ConnectStatusFragment,DashboardFragment

    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>
    

    【讨论】:

    • 好吧,我没有在我的应用程序中使用 Fragments。使用正常的活动。
    猜你喜欢
    • 2022-01-17
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多