Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法更改导航抽屉切换图标_Android_Android Layout_Android Fragments_Kotlin_Navigation Drawer - Fatal编程技术网

Android 无法更改导航抽屉切换图标

Android 无法更改导航抽屉切换图标,android,android-layout,android-fragments,kotlin,navigation-drawer,Android,Android Layout,Android Fragments,Kotlin,Navigation Drawer,我正在尝试更改用于打开和关闭导航抽屉的切换按钮的抽屉图标。但我所有的努力都失败了,我也没有成功。请在这方面帮助我 val d = BitmapDrawable(this.getResources(), path) as Drawable toggle!!.setHomeAsUpIndicator(d) if (path != null && path != "") { Picasso.with(t

我正在尝试更改用于打开和关闭导航抽屉的切换按钮的抽屉图标。但我所有的努力都失败了,我也没有成功。请在这方面帮助我

val d = BitmapDrawable(this.getResources(), path) as Drawable

            toggle!!.setHomeAsUpIndicator(d)

            if (path != null && path != "") {
                Picasso.with(this)?.load(path.toString())?.placeholder(resources?.getDrawable(R.drawable.ic_add_a_photo_black_24dp))?.error(
                    resources.getDrawable(
                        android.R.drawable.ic_input_add
                    )
                )!!.into(userPhotoImv)
            }

用java发布我的答案可能会有所帮助

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false);
toggle.setDrawerIndicatorEnabled(false);
toggle.setHomeAsUpIndicator(R.drawable.ic_custom_drawer_icon);
设置用于切换的文本

toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            if (drawer.isDrawerOpen(GravityCompat.START)) {
                drawer.closeDrawer(GravityCompat.START);
            } else {
                drawer.openDrawer(GravityCompat.START);
            }
        }
    });

用java发布我的答案可能会有所帮助

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false);
toggle.setDrawerIndicatorEnabled(false);
toggle.setHomeAsUpIndicator(R.drawable.ic_custom_drawer_icon);
设置用于切换的文本

toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            if (drawer.isDrawerOpen(GravityCompat.START)) {
                drawer.closeDrawer(GravityCompat.START);
            } else {
                drawer.openDrawer(GravityCompat.START);
            }
        }
    });
这样试试

首先从url创建位图图像

try {
    URL url = new URL("http://....");
    Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch(IOException e) {
    System.out.println(e);
}
现在初始化导航抽屉

 ActionBarDrawerToggle  toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawerLayout.addDrawerListener(toggle);
    toggle.syncState();

    navView.setNavigationItemSelectedListener(this);
    //change navigation icon
    toggle.setDrawerIndicatorEnabled(false);

    Drawable drawable = new BitmapDrawable(getResources(), bitmap);

    toggle.setHomeAsUpIndicator(drawable);
注意:这是java工作代码,您需要在kotlin中进行更改(我认为您可以在类中复制它时直接将其转换为kotlin)

希望能奏效:)

试试这个方法

首先从url创建位图图像

try {
    URL url = new URL("http://....");
    Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch(IOException e) {
    System.out.println(e);
}
现在初始化导航抽屉

 ActionBarDrawerToggle  toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawerLayout.addDrawerListener(toggle);
    toggle.syncState();

    navView.setNavigationItemSelectedListener(this);
    //change navigation icon
    toggle.setDrawerIndicatorEnabled(false);

    Drawable drawable = new BitmapDrawable(getResources(), bitmap);

    toggle.setHomeAsUpIndicator(drawable);
注意:这是java工作代码,您需要在kotlin中进行更改(我认为您可以在类中复制它时直接将其转换为kotlin)


希望这项工作:)

通常您可以设置如下代码片段:

        Toolbar chatbox_toolbar = findViewById(R.id.toolbar);
        chatbox_toolbar.setTitleTextColor(getResources().getColor(R.color.white));
        setSupportActionBar(chatbox_toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setHomeAsUpIndicator(R.mipmap.ic_back_arrow_gray);
如果你想从URL添加dunamic图片,请稍候,我会在这里更新

使用滑动库:

        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayUseLogoEnabled(true);

        Glide.with(this).asDrawable().load(YourImageUrl).into(new CustomTarget<Drawable>() {
        @Override
        public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
            getSupportActionBar().setLogo(resource);
        }
       @Override
       public void onLoadCleared(@Nullable Drawable placeholder) {
      }
});
如果没有得到结果,则隐藏actionbar主页按钮,在自定义标题工具栏中获取图像视图,然后从图像URL使用Glide或piccaso设置图像。如果您在这方面需要帮助,请让我进一步了解,首先尝试上面的代码片段


试试看这可能会对您有所帮助

通常您可以设置如下代码段:

        Toolbar chatbox_toolbar = findViewById(R.id.toolbar);
        chatbox_toolbar.setTitleTextColor(getResources().getColor(R.color.white));
        setSupportActionBar(chatbox_toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setHomeAsUpIndicator(R.mipmap.ic_back_arrow_gray);
如果你想从URL添加dunamic图片,请稍候,我会在这里更新

使用滑动库:

        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayUseLogoEnabled(true);

        Glide.with(this).asDrawable().load(YourImageUrl).into(new CustomTarget<Drawable>() {
        @Override
        public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
            getSupportActionBar().setLogo(resource);
        }
       @Override
       public void onLoadCleared(@Nullable Drawable placeholder) {
      }
});
如果没有得到结果,则隐藏actionbar主页按钮,在自定义标题工具栏中获取图像视图,然后从图像URL使用Glide或piccaso设置图像。如果您在这方面需要帮助,请让我进一步了解,首先尝试上面的代码片段



试试这可能会帮助你

mToolbar.setNavigationIcon(R.drawable.navIcon);用这个。这是针对java的,您需要为kotlini更改它,我正在使用服务器中的imagepath更改它,但是blank@mdgouse请检查更新的答案,这可能对您有帮助。如果我的答案对您有帮助,请将我的答案从勾号中标记为正确,否则我将删除此答案brother::mToolbar.setNavigationIcon(R.drawable.navIcon);用这个。这是针对java的,您需要为kotlini更改它,我正在使用服务器中的imagepath更改它,但是blank@mdgouse请勾选更新的答案,这可能对您有所帮助。如果我的答案对您有帮助,请将我的答案从勾选标记中标记为正确,否则我将删除此答案brother::但我想将此drawable转换为bitmapi,我有路径自server@mdgouse我已经添加了答案,请检查一下。它的工作java代码,但当复制到您的kotlin时,它会建议转换为kotlin,但我想将此drawable转换为bitmapi,并从server@mdgouse我已经添加了答案,请检查一下。它的java代码可以正常工作,但当在kotlin中复制它时,它会建议转换为KotlIntogle。sethomeupindicator不会拍摄类型的图像bitmap@mdgouse检查我是否已编辑我的答案,是否已将位图图像转换为可绘制的,然后设置iconTry以将此代码放入上述异常,如果上述答案对您有帮助:请尝试RunUnuithRead(new Runnable()){@Override public void run(){//您的代码在这里}});toggle.sethomeupindicator不拍摄类型的图像bitmap@mdgouse检查我是否已编辑我的答案,是否已将位图图像转换为可绘制,然后设置iconTry以将此代码放入上述异常,如果上述答案对您有帮助:请尝试runOnUiThread(new Runnable(){@Override public void run()){//your code here}});kotlin中的target有问题…无法解析target请帮助我了解picasso kotlin中的target有问题…无法解析target请帮助我了解picasso