小编Jit*_*a A的帖子

导航组件,控制何时显示汉堡包或后退图标

我有以下活动

class MainActivity : AppCompatActivity() {

private lateinit var drawerLayout: androidx.drawerlayout.widget.DrawerLayout

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main_activity)

    drawerLayout = drawer_layout

    val navController = Navigation.findNavController(this, R.id.fragment_main_navHost)

    setSupportActionBar(toolbar)

    NavigationUI.setupActionBarWithNavController(this, navController, drawerLayout)
    navView_main.setupWithNavController(navController)
}

override fun onSupportNavigateUp(): Boolean {
    return NavigationUI.navigateUp(drawerLayout,
        Navigation.findNavController(this, R.id.fragment_main_navHost))
}

override fun onBackPressed() {
    if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
        drawerLayout.closeDrawer(GravityCompat.START)
    } else {
        super.onBackPressed()
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以看到它与导航图相关联,我正在使用导航抽屉.当我浏览抽屉中的项目时,我想保留汉堡图标,只有当我点击片段或弹出窗口中的项目时才将其更改为上/后按钮,并确保系统的行为反映了什么用户期望基于显示的图标.那可能吗

android kotlin navigation-drawer android-jetpack android-architecture-navigation

19
推荐指数
2
解决办法
5423
查看次数

如何在Flutter中为标签栏创建未选择的指示器

我使用装饰器为标签栏创建了一个自定义指标。我想为选项卡栏中未选中的选项卡创建一个未选中的指示器。

我做了一个具有自定义装饰的容器,但是当前选择的指示器落后于容器装饰。

new TabBar( 
labelColor: Colors.black,
unselectedLabelColor: Colors.grey,
indicator: new CustomTabIndicator(),
tabs: [
new Container(decoration: new CustomTabInactive(),child: Tab(icon: Icon(Icons.person )))])
Run Code Online (Sandbox Code Playgroud)

带未选择指示器的标签栏

tabs android indicator tabbar flutter

7
推荐指数
2
解决办法
744
查看次数

koin 传递 CoroutineScope 作为 RoomDatabaseCallback 的依赖项

我有一个需要 CoroutineScope 进行初始化的数据库。

@Database(entities = [Word::class], version = 1)
 abstract class WordRoomDatabase : RoomDatabase() {
abstract fun wordDao(): WordDao

 companion object {
@Volatile
private var INSTANCE: WordRoomDatabase? = null

fun getDatabase(
        context: Context,
        scope: CoroutineScope//this dependecy!!!
): WordRoomDatabase {
    return INSTANCE ?: synchronized(this) {
        val instance = Room.databaseBuilder(
                context.applicationContext,
                WordRoomDatabase::class.java,
                "word_database"
        )
                .addCallback(WordDatabaseCallback(scope))
                .build()
        INSTANCE = instance
        instance
    }
}

private class WordDatabaseCallback(
        private val scope: CoroutineScope
) : RoomDatabase.Callback() {
    override fun onOpen(db: SupportSQLiteDatabase) {
        super.onOpen(db)
        INSTANCE?.let { database …
Run Code Online (Sandbox Code Playgroud)

android android-room koin

5
推荐指数
1
解决办法
1203
查看次数

无法打开意图android的pdf文件

我彻底检查了 pdf 文件是否在其中, /storage/emulated/0/Download/Abcd.pdf" 但无法有意打开它。

我在各种查看器中打开它,有些人会导致错误:“无法打开文件”。Microsoft word 说:check file in the device,但是Abcd.pdf当我在android文件系统的文件目录中打开文件时,文件打开得很好。

我是不是路线设置错了?

在此处输入图片说明

AndroidManifest.xml

<provider
        android:authorities="${applicationId}.provider"
        android:name="android.support.v4.content.FileProvider"
        android:exported="false"
        android:grantUriPermissions="true">

        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths"/>
    </provider>
Run Code Online (Sandbox Code Playgroud)

主Activity.Java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent=new Intent();

    File mypath=new File( Environment.getExternalStorageDirectory().getAbsolutePath() + "/Download/","Abcd.pdf");

    Log.e("download",mypath.getAbsolutePath());
      //this log says : /storage/emulated/0/Download/Abcd.pdf
    Uri pdfUri = FileProvider.getUriForFile(getApplicationContext(), getApplicationContext().getPackageName() + ".provider", mypath);



    Log.e("download",mypath.exists()+"");
    if (mypath.exists()) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            Log.e("download","result : "+pdfUri.getPath());
            intent = new Intent(Intent.ACTION_VIEW);
            intent.setType("application/pdf");
            intent.putExtra(MediaStore.EXTRA_OUTPUT, pdfUri);
        }else{

        } …
Run Code Online (Sandbox Code Playgroud)

android android-intent

4
推荐指数
1
解决办法
1964
查看次数