我正在开发一个Android应用程序,其中有导航抽屉,可导航到我的应用程序的其他部分。我已将ActionBarDrawerToggle默认汉堡包图标更改为我自己的图标。我想将切换图标放在其最左侧。所以我想删除默认的16dp空间。
我要删除切换图标左侧的红色边框
我已经在互联网上搜索了4个多小时,但没有任何反应。我已经尝试了在StackOverflow中找到的所有内容,但是没有任何工作。我还尝试将图标资源更改为其他图像,以确保使用的图像没有任何错误。
如果我从工具栏上删除切换图标,那么工具栏的其他内容会自动移到最左端而没有16dp的空白,但是如果我添加切换图标,则会再次显示16dp空间。
此外,由于我的最低sdk版本为18,所以我看到一些需要最低sdk版本21的解决方案将不起作用。
唯一对我有用的是
toolbar.setPadding(-16, 0, 0, 0);
toolbar.setX(-16);
但这有一个问题,对于平板电脑等较大的屏幕设备,切换图标会完全隐藏。所以任何人都可以帮我这个忙,下面是我正在使用的代码。
非常感谢
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
fm = getSupportFragmentManager();
final DrawerLayout drawer = findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
}
};
drawer.addDrawerListener(toggle);
toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (drawer.isDrawerVisible(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
drawer.openDrawer(GravityCompat.START);
}
}
});
toolbar.setContentInsetsAbsolute(0, 0);
toggle.setDrawerIndicatorEnabled(false);
toggle.setHomeAsUpIndicator(R.mipmap.toggle);// my icon resource
toggle.syncState();
我用于工具栏的xml文件是
<?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"
android:background="@drawable/bg_gradient">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white"
android:theme="@style/ThemeOverlay.AppCompat.Light"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:subtitleTextColor="@color/black"
app:titleTextColor="@color/black" />
<RelativeLayout
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:1)
我认为您的代码是
this.state = {
showAttemptModal: false,
showProgressbar: true,
data: JSON.parse(JSON.stringify(this.props.data))
}
对于不同的屏幕,它是不同的,因为您使用的是像素(px),并且它可以在不同的屏幕中改变。
toolbar.setPadding(-16, 0, 0, 0);
toolbar.setX(-16);
我不知道这是否是更好的方法,但我希望这会有所帮助。