如何在 android 中覆盖 setWidth?

问题描述 投票:0回答:0

在这个android应用程序中,当应用程序中没有返回堆栈时,左上角有一个徽标图标。 (无法返回,例如:主页)。当有返回堆栈时,有一个从类中调用的后退按钮导航(具有 24dp 高度和宽度的矢量图形)

(isSmallPortrait 用于识别 Tab 设备和手机设备)

**类调用后退按钮 **

boolean canback = getSupportFragmentManager().getBackStackEntryCount() > 0;
        if (toolbarTop != null) {
            if (canback) {

                if(!getResources().getBoolean(R.bool.isSmallPortrait)) {
                    toolbarTop.setNavigationIcon(R.drawable.back_btn_black);
                }else {
                    toolbarTop.setNavigationIcon(R.drawable.ic_baseline_arrow_back_ios_new_24_old);
                }
            } else {
                toolbarTop.setNavigationIcon(null);
            }
        }

值\styles.xml

<style name="Widget.Toolbar.Button.NavigationV4" parent="Widget.AppCompat.Toolbar.Button.Navigation">
        <item name="android:maxHeight">24dp</item>
        <item name="android:maxWidth">24dp</item>
    </style>

工具栏布局代码:

<androidx.coordinatorlayout.widget.CoordinatorLayout
        android:id="@+id/coordinatorLayoutMain"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toTopOf="@id/toolbarBottom">
        <com.google.android.material.appbar.AppBarLayout
            android:id="@+id/appbarlayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">
            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@drawable/toolbar_top_bg_gradient"
                app:popupTheme="@style/AppTheme.PopupOverlayV4"
                app:contentInsetLeft="0dp"
                app:contentInsetStart="0dp"
                >
                <androidx.constraintlayout.widget.ConstraintLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">




                    <ImageView
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent"
                        app:layout_constraintBottom_toBottomOf="parent"
                        android:id="@+id/toolbar_client_logo"
                        android:layout_width="80dp"
                        android:layout_height="match_parent"
                        android:scaleType="fitXY"
                        android:adjustViewBounds="true"
                        android:src="@drawable/logo"
                        />

正如我所提到的,这个 ic_baseline_arrow_back_ios_new_24_old 的高度和重量为 24dp,而标签设备的 png 宽度超过 24dp。在平板电脑中,当有后退堆栈时它会正确显示(后退按钮将在左上角,徽标将在后退按钮之后显示)。

但在手机中,后退按钮和徽标图标之间始终有一个空格。

我为手机和标签使用相同的布局工具栏布局。 (用于标志等)

当我将鼠标悬停在 Widget.ToolBar.button.Navigation 上时,在 values\styles.xml 中有一行说 minWidth = 56dp,但实际上不是。我在 values\styles.xml 中将它设置为 24dp 但它不会覆盖。

这是我悬停时得到的,

@style/Widget.Toolbar.Button.NavigationV4   Widget.Toolbar.Button.NavigationV4:     android:android:maxHeight = 24dp     android:android:maxWidth = 24dp  Inherits from: @style/Widget.AppCompat.Toolbar.Button.Navigation:  Inherits from: @style/Base.Widget.AppCompat.Toolbar.Button.Navigation:  Inherits from: @android:style/Widget.Material.Toolbar.Button.Navigation:     android:background = @drawable/control_background_40dp_material C:/Program Files/Android/Android Studio/plugins/design-tools/resources/layoutlib/data/framework_res.jar!/res/drawable/control_background_40dp_material.xml    android:minWidth = 56dp     android:scaleType = center  Inherits from: @android:style/Widget.Material:

如何从这里覆盖这个 minWidth = 56dp 到 24dp 并在手机中显示宽度较小的后退按钮?

我对手机的尝试:

使用 24dp 宽度的 png - 没有变化

使用选项卡中显示的 png - 它像在选项卡中一样正确显示。后退按钮后的徽标。但由于手机中的工具栏较短,无法正确显示其他项目窗口标题等

使用另一个 24dp 的矢量- 没有变化

类中的 setBounds,类中的 setWidth 高度 - 没有变化

如何从这里覆盖这个 minWidth = 56dp 并在手机中显示宽度较小的后退按钮?

java android xml styles width
© www.soinside.com 2019 - 2024. All rights reserved.