当前位置: 首页 > 知识库问答 >
问题:

删除android工具栏图标中的边距

罗允晨
2023-03-14

我在我的应用程序工具栏中的图标和导航图标之间有一个奇怪的边距(就像在图像中一样)。我不知道它是从哪里来的,怎么去除它。我在网上搜索后发现:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:fitsSystemWindows="true"
    android:minHeight="?attr/actionBarSize"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:background="?attr/colorPrimaryDark"
    android:layout_margin="0dp"
    android:contentInsetLeft="0dp"
    android:contentInsetRight="0dp"
    android:contentInsetStart="0dp"
    android:contentInsetEnd="0dp"
    android:padding="0dp"
    app:contentInsetLeft="0dp"
    app:contentInsetRight="0dp"
    app:contentInsetStart="0dp"
    app:contentInsetEnd="0dp">
</android.support.v7.widget.Toolbar>

编辑>>解决方案

编辑

class BasicActivity extends AppCompatActivity{
    protected Toolbar mToolbar;    /// Initilize it in onCreate methode
    .....

     protected void setupToolbar(String title) {
        toolbar=(Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        ActionBar ab = getSupportActionBar();
        if (ab != null) {
            ab.setDisplayHomeAsUpEnabled(true);
            ab.setDisplayShowHomeEnabled(true);
        }

       if (!TextUtils.isEmpty(title)) {
        setTitle(title);
    }
}

}
class Main extends BasicActivity{
     @override
     protected void onCreate(Bundle saved){
          super.onCreate(saved);
          ....
          setupToolbar("MAIN");
     }
}

共有1个答案

司徒茂实
2023-03-14

您可以使用以下方法轻松删除标题和后退图标之间的页边距填充:

app:contentInsetStartWithNavigation="0dp"

工具栏左右边距填充:

app:contentInsetStart="0dp"

此外,如果需要更多的自定义,请执行以下操作:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/color_primary"
    app:contentInsetEnd="0dp"
    app:contentInsetLeft="0dp"
    app:contentInsetRight="0dp"
    app:contentInsetStart="0dp"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical">

        <ImageView
            android:id="@+id/icon_toolbar_left"
            style="@style/IconFont.Large"
            android:layout_width="48dp"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:background="?attr/selectableItemBackground" />



        <TextView
            android:id="@+id/text_toolbar_title"
            style="@style/Textview.White.MediumSmall"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_toLeftOf="@+id/icon_toolbar_right"
            android:layout_toRightOf="@+id/icon_toolbar_left"
            android:gravity="center"
            android:text="@string/nav_category"/>


        <ImageView
            android:id="@+id/icon_toolbar_right"
            style="@style/IconFont.Large"
            android:layout_width="48dp"
            android:layout_height="match_parent"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:background="?attr/selectableItemBackground"/>

    </RelativeLayout>

</android.support.v7.widget.Toolbar>
 类似资料:
  • 我正在尝试使用工具栏为我的项目。下面是我正在使用的代码:

  • 我一直试图找到一些方法来删除图标/徽标从动作栏,但我找到的唯一东西,经过一个小时的搜索,Android的文档和Google是如何删除整个标题栏。那不是我想要的。只想从标题栏中移除图标/徽标。 有谁知道怎么做吗?我最好用XML来实现。

  • 如何从工具栏中获取图标以更改为使用bbdd中看到的方法获得的新图标。问题是我无法访问更新活动的事件以更改图标。我尝试使用onPreareOptionsMenu方法,但无法使其工作。我无法通过将代码放入onStart来做到这一点,因为它告诉我菜单对象为空或无效。 我的活动由AppCompactActive扩展并通过AdapterView加载。当我返回片段对话框或从下一个活动开始时,我遇到了问题。 谢

  • 问题内容: 我的应用程序中有一个工具栏,例如: 我将标题添加为: 我已经读过Android工具栏中心标题和自定义字体 但是,如果我更改工具栏的xml,我不知道如何更改TextView的值。有人可以帮助我吗? 问题答案: 如果您具有自定义的工具栏布局,请不要用于设置标题。 相反,假设您的XML布局如下所示: 你需要调用,在某处你的可能是:

  • 我在活动文件中有一个膨胀的视图,布局文件碰巧有一个工具栏小部件,我希望用图标填充。我尝试使用code但是没有显示出来,工具栏文本也没有显示出来。布局的代码是这样的... 如何成功地使此工具栏在一个膨胀的视图中显示图标和文本?

  • 当我运行应用程序,工具栏显示,但不是标题。如何显示标题?谢了。