标签: material-components

Android 中的 NavigationView 项目填充

如何为 NavigationView 中的项目设置填充。我需要为项目设置 paddingLeft,因为我已经删除了图标。我尝试过的是这个,但它不起作用:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    android:focusable="true"
    android:foreground="?attr/selectableItemBackground"
    app:headerLayout="@layout/nav_header_navigation_drawer"
    app:itemBackground="@drawable/selected_background"
    app:itemTextAppearance="@style/Drawer"
    app:menu="@menu/activity_navigation_drawer_drawer" />
Run Code Online (Sandbox Code Playgroud)

我的 Drawer.xml 文件样式:

<style name="Drawer">
    <item name="android:listPreferredItemPaddingLeft">50dp</item>
    <item name="android:textSize">30sp</item>
    <item name="android:typeface">serif</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android navigationview android-navigationview material-components material-components-android

6
推荐指数
3
解决办法
4834
查看次数

Theme.MaterialComponents 不会改变对话框标题的字体

我正在为我们的应用程序使用材料组件主题。现在我们想要一个自定义字体,我设法在下面的主题中几乎无处不在地应用它,它使用textAppearance...由材料组件定义的各种属性。

这非常有效,并且该主题也几乎适用于所有地方的 AlertDialogs——消息文本和按钮具有自定义字体,按钮具有正确的强调色等。

无论如何,只有对话框标题保持 Roboto 字体。

颜色正确但标题字体错误的对话框

<!-- externalized font name for easier change -->
<string name="font_regular" translatable="false" tools:ignore="ReferenceType">@font/atma_regular</string>

<style name="Theme.App" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColorPrimary">@color/textColorPrimary</item>
    <item name="android:textColorSecondary">@color/textColorSecondary</item>

    <item name="textAppearanceHeadline1">@style/TextAppearance.App.Button</item>
    <item name="textAppearanceHeadline2">@style/TextAppearance.App.Button</item>
    <item name="textAppearanceHeadline3">@style/TextAppearance.App.Button</item>
    <item name="textAppearanceHeadline4">@style/TextAppearance.App.Button</item>
    <item name="textAppearanceHeadline5">@style/TextAppearance.App.Button</item>
    <item name="textAppearanceHeadline6">@style/TextAppearance.App.Button</item>
    <item name="textAppearanceSubtitle1">@style/TextAppearance.App.Subtitle1</item>
    <item name="textAppearanceSubtitle2">@style/TextAppearance.App.Subtitle2</item>
    <item name="textAppearanceBody1">@style/TextAppearance.App.Body1</item>
    <item name="textAppearanceBody2">@style/TextAppearance.App.Body2</item>
    <item name="textAppearanceButton">@style/TextAppearance.App.Button</item>
    <item name="android:textAppearanceLarge">@style/TextAppearance.App.Large</item>
    <item name="android:textAppearanceMedium">@style/TextAppearance.App.Medium</item>
    <item name="android:textAppearanceSmall">@style/TextAppearance.App.Small</item>
</style>

<style name="TextAppearance.App.Subtitle1" parent="TextAppearance.MaterialComponents.Subtitle1">
    <item name="fontFamily">@string/font_regular</item>
    <item name="android:fontFamily">@string/font_regular</item>
</style>
...
Run Code Online (Sandbox Code Playgroud)

我试图为警报对话框定义一个额外的主题,如下所示:

<style name="Theme.App" parent="Theme.MaterialComponents.Light.NoActionBar">
    ...
    <item name="alertDialogTheme">@style/Theme.App.AlertDialog</item>
    ...
</style> …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog material-design material-components material-components-android

6
推荐指数
1
解决办法
2850
查看次数

如何使用 MaterialComponents 正确显示 DatePickerDialog?

我正在使用 material.io 中的 MaterialComponents for Android。

我有两个主题(光明和黑暗)。我想显示一个 DatePickerDialog。但这是结果: 在此处输入图片说明

这是我如何显示对话框的代码:

private fun selectDeadline() {
    val dialog = DateDialog()
    val bundle = Bundle()
    bundle.putInt("themeId", themeId)
    dialog.arguments = bundle
    dialog.show(supportFragmentManager, "")
}

class DateDialog : DialogFragment(), DatePickerDialog.OnDateSetListener {

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        val date = DateTime.now()
        val themeId = arguments!!.getInt("themeId")
        return DatePickerDialog(activity!!, themeId, this, date.year, date.monthOfYear - 1, date.dayOfMonth)
    }

    override fun onDateSet(view: DatePicker?, year: Int, month: Int, day: Int) {
        deadlineTitle.text = "$year, $month, $day"
    }
}
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的是,我的主题:

<resources>

<!-- …
Run Code Online (Sandbox Code Playgroud)

android kotlin material-components

6
推荐指数
1
解决办法
1037
查看次数

可以更改 MaterialCheckBox 周围的间距吗?

我很想知道是否可以更改放置在周围的默认间距MaterialCheckBox......或者是否有计划允许这样做。

比方说,例如起见,我有一个CheckBox带有四个定义的TextViews周围(向左,右,上和它的底部),我在其中任一指定的无边距Views。如果我将我的应用程序的主题定义为,Theme.AppCompat.Light那么CheckBox它将以相同的间距呈现,如下所示:

在 Theme.AppCompat.Light 主题中呈现的复选框

如果我将应用程序的主题更改为Theme.MaterialComponents.Light并且不对应用程序进行其他更改,CheckBox则呈现如下:

在此处输入图片说明

请注意我想根据需要自定义的不等间距。MaterialCheckBox 文档中没有提到任何内容,我在类定义中看不到任何关于能够更改此间距的明显内容。

(对于它的价值,我使用的是最新版本的com.google.android.material:material library,即1.1.0-alpha03。无论我是否定义了CheckBoxAppCompatCheckBox或者MaterialCheckBox在我的布局中,我上面所说的一切都成立。关键是将主题从 更改Theme.AppCompat.LightTheme.MaterialComponents.Light。)

android material-components material-components-android

6
推荐指数
1
解决办法
536
查看次数

Android 如何设置按钮的背景颜色

我正在尝试更改按钮的背景颜色。我在模拟器上使用 SDK 21 的 Kotlin。

View 和 Button 在布局 XML 文件中声明

<View
    android:id="@+id/myview"
    android:layout_width="64dp"
    android:layout_height="32dp"
    />
<Button
    android:id="@+id/showButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="12dp"
    android:text="test"
    />
Run Code Online (Sandbox Code Playgroud)

设置颜色的 API 似乎不起作用:

    showButton.setBackgroundColor(0xff60a0e0.toInt()) <-- doesnt work
Run Code Online (Sandbox Code Playgroud)

有效的是:

    myview.setBackgroundColor(0xff60a0e0.toInt()) <-- works, exact background color
    showButton.setTextColor(0xff000050.toInt()) <-- works, exact text color
Run Code Online (Sandbox Code Playgroud)

经过进一步尝试后,我似乎只能设置按钮的 Alpha 通道,而不能设置颜色:

    setBackgroundColor( 0xff000000.toInt())  <-- works, opaque
    setBackgroundColor( 0x00000000.toInt())  <-- works, transparent
Run Code Online (Sandbox Code Playgroud)

同样的事情还有:

        showButton.setBackgroundColor(Color.GREEN) <-- doesnt work, button is opaque but not green
        showButton.setBackgroundColor(Color.TRANSPARENT) <-- works, button is transparent
Run Code Online (Sandbox Code Playgroud)

任何想法?我是否错过了其他答案或文档中的某些内容?

这是完整的布局,它用于填充片段(如果重要的话):



    <?xml version="1.0" encoding="utf-8"?>
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" …
Run Code Online (Sandbox Code Playgroud)

android android-button kotlin material-components material-components-android

6
推荐指数
1
解决办法
2万
查看次数

避免芯片组不受检查

我有以下芯片组,当我点击已经选中的芯片时,它会被取消选中,但我必须始终有一个选中的芯片。行为类似于无线电组。

<com.google.android.material.chip.ChipGroup
        android:id="@+id/chip_group_filter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:checkedChip="@id/chip_1"
        app:singleSelection="true">

        <com.google.android.material.chip.Chip
            android:id="@+id/chip_1"
            style="@style/Widget.MaterialComponents.Chip.Choice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/chip1"
            app:chipBackgroundColor="@color/chip_color" />

        <com.google.android.material.chip.Chip
            android:id="@+id/chip_2"
            style="@style/Widget.MaterialComponents.Chip.Choice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/chip2"
            app:chipBackgroundColor="@color/chip_color" />

    </com.google.android.material.chip.ChipGroup>
Run Code Online (Sandbox Code Playgroud)

android android-chips material-components material-components-android

6
推荐指数
1
解决办法
1715
查看次数

如何在材质文本字段的开头插入图标

我正在尝试在材质文本字段的开头插入一个图标。我在material.io 的文档中也找不到任何合适的内容。

这就是我正在努力实现的目标。

图像

android android-textinputlayout material-components material-components-android

6
推荐指数
2
解决办法
4754
查看次数

ExtendedFloatingActionButton - 如何在按钮扩展和收缩时达到相同的高度

我正在使用最新的材料组件 - 1.1.0-beta01。

当 ExtendedFloatingActionButton 展开时,其高度也会降低。

晶圆厂收缩

晶圆厂扩大

以下是 xml 布局的外观:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/main_view"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity">

   <com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
       android:id="@+id/fab"
       android:layout_width="wrap_content"
       android:layout_height="56dp"
       android:text="Text"
       android:textColor="#02220D"
       android:backgroundTint="#F2C203"
       style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton"
       android:textSize="15sp"
       android:fontFamily="sans-serif-medium"
       android:textStyle="normal"
       android:layout_marginBottom="16dp"
       android:layout_marginEnd="16dp"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintEnd_toEndOf="parent"
       app:iconTint="#02220D"
       app:icon="@drawable/ic_camera"
       app:iconPadding="10dp"
       android:insetLeft="0dp"
       android:insetBottom="0dp"
       android:insetTop="0dp"
       android:insetRight="0dp"
       />

</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

我试图设置最小和最大高度,但没有用。知道如何在按钮展开和收缩时达到相同的高度吗?

谢谢。

android android-button floating-action-button material-components material-components-android

6
推荐指数
1
解决办法
1869
查看次数

Android:MaterialButton 覆盖样式中的 textColor

我想定义一个替代的按钮样式,它使用我的 secondaryColor 作为背景,并?colorOnSecondary分别用于文本。

但是我很难在样式中定义 textColor 。MaterialButton 正在为使用?colorOnPrimary. 因此,重写很麻烦。

有没有另一种方法可以在没有 selectorDrawable 的情况下设置颜色?

android android-button material-components material-components-android

6
推荐指数
1
解决办法
3530
查看次数

两个拇指与Android的Material组件的滑块?

在Material.io 网站的滑块演示中,他们显示了下面的双拇指滑块,但我找不到如何启用它,我也没有真正找到任何文档。它可用于android组件吗?

在此处输入图片说明

android slider material-design material-components android-slider

6
推荐指数
1
解决办法
2630
查看次数