在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:GoRouter开源软件地址:https://gitee.com/rubintry/GoRouter开源软件介绍:最轻量级的安卓路由框架 最新版本
示例代码特性
如何引入?config.gradle dependencies{ implementation 'cn.rubintry:gorouter-api:1.0.30' //Java annotationProcessor 'cn.rubintry:gorouter-compiler:1.0.5' //Kotlin kapt 'cn.rubintry:gorouter-compiler:1.0.5' } 如何构建你的工程?gradle.properties //如果你需要将module作为application来运行,你需要将moduleIsApplication设为true moduleIsApplication = false mainModule.gradle apply plugin: 'com.android.application'apply from: '../config.gradle'dependencies { if(!moduleIsApplication.toBoolean().booleanValue()){ implementation project(path: ':anothermodule') }} anotherModule.gradle if(moduleIsApplication.toBoolean().booleanValue()){ apply plugin: 'com.android.application' }else{ apply plugin: 'com.android.library' } apply from: '../config.gradle' android { defaultConfig { if(moduleIsApplication.toBoolean().booleanValue()){ applicationId "子模块的包名" } ... } sourceSets{ main { if(moduleIsApplication.toBoolean().booleanValue()){ //如果你想将其以application的方式来运行module,使用默认生成的AndroidManifest.xml即可 manifest.srcFile 'src/main/AndroidManifest.xml' }else{ //若你想将其以library的方式来运行module,你需要在以下目录下创建一个AndroidManifest.xml文件并按照以下格式编写 manifest.srcFile 'src/main/manifest/AndroidManifest.xml' } } }} 以library方式运行module时所需的AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="你的子模块包名"> <application> <activity android:name="你的子模块里的activity"> </activity> </application> </manifest> 如何使用此框架?Fragment //获得一个fragment实例 Fragment instance = GoRouter.getInstance().build("fragmentRouteKey").go() Activity篇 //导航到指定activity GoRouter.getInstance().build("routeKey2").go() //携带数据 Bundle data = new Bundle() data.putInt(key , value); GoRouter.getInstance().build("routeKey2" , data).go() 目标 Activity /** * @author logcat */ @Route(url = "routeKey2") public class LoginActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); value = getIntent().getInt(key) } } 带有共享元素的跳转Activity篇 Layoutactivity1 <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="activity1" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:transitionName="sharedActivity" android:textSize="50sp"></TextView> activity2 <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="activity1" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:transitionName="sharedActivity" android:textSize="50sp"></TextView> //Activity1 //以带有共享元素动画的方式跳转 tv = findViewById(R.id.tv); GoRouter.getInstance().build("activity1 's routeKey") .go(this , ActivityOptionsCompat.makeSceneTransitionAnimation(this , tv , tv.getTransitionName()).toBundle()) |
请发表评论