【问题标题】:Android load data on fragment on network connectionAndroid在网络连接上的片段上加载数据
【发布时间】:2021-02-16 10:55:21
【问题描述】:

您好,我是 android 开发的新手,并尝试使用每个选项卡的单独片段来实现选项卡式活动。 我的布局如下所示

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottomView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom"
        app:itemIconTint="@color/bottom_navigation"
        app:itemTextAppearanceInactive="@style/Widget.AppTheme.Button.TextButton.Small"
        app:itemTextColor="@color/bottom_navigation"
        app:labelVisibilityMode="labeled"
        app:menu="@menu/drawer_menu" />

</RelativeLayout>

和活动

class MainFeedActivity : AppCompatActivity, BottomNavigationView.OnNavigationItemSelectedListener,
        BottomNavigationView.OnNavigationItemReselectedListener{
  override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        navigationBottomView.setOnNavigationItemSelectedListener(::onNavigationItemSelected)
        navigationBottomView.setOnNavigationItemReselectedListener(::onNavigationItemReselected)
        //set navigationBottomView to right depending of the item selected
  }
  
}

问题是当互联网连接不可用时,片段会加载,但是一旦互联网连接开始导航到该片段,数据不会被加载,我应该进行哪些更改以确保在网络重新连接时加载数据?

【问题讨论】:

    标签: android android-layout android-fragments material-components-android


    【解决方案1】:

    如果您有网络连接开/关监听器,那么您必须将互联网状态传递给底部导航中的每个片段。 在底部导航中创建接口并将接口扩展为片段

    interface NetState{
        fun onStateChanged(isAvailable: Boolean)
    }
    

    然后根据网络状态变化传递给fragments

        supportFragmentManager.fragments.forEach { 
            if (it is NetState)
                it.onStateChanged(true)
        }
    

    【讨论】:

    猜你喜欢
    • 2022-07-07
    • 2013-05-05
    • 1970-01-01
    • 2014-12-31
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    相关资源
    最近更新 更多