如何为 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
我正在为我们的应用程序使用材料组件主题。现在我们想要一个自定义字体,我设法在下面的主题中几乎无处不在地应用它,它使用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
我正在使用 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) 我很想知道是否可以更改放置在周围的默认间距MaterialCheckBox......或者是否有计划允许这样做。
比方说,例如起见,我有一个CheckBox带有四个定义的TextViews周围(向左,右,上和它的底部),我在其中任一指定的无边距Views。如果我将我的应用程序的主题定义为,Theme.AppCompat.Light那么CheckBox它将以相同的间距呈现,如下所示:
如果我将应用程序的主题更改为Theme.MaterialComponents.Light并且不对应用程序进行其他更改,CheckBox则呈现如下:
请注意我想根据需要自定义的不等间距。MaterialCheckBox 文档中没有提到任何内容,我在类定义中看不到任何关于能够更改此间距的明显内容。
(对于它的价值,我使用的是最新版本的com.google.android.material:material library,即1.1.0-alpha03。无论我是否定义了CheckBox,AppCompatCheckBox或者MaterialCheckBox在我的布局中,我上面所说的一切都成立。关键是将主题从 更改Theme.AppCompat.Light为Theme.MaterialComponents.Light。)
我正在尝试更改按钮的背景颜色。我在模拟器上使用 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
我有以下芯片组,当我点击已经选中的芯片时,它会被取消选中,但我必须始终有一个选中的芯片。行为类似于无线电组。
<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
我正在使用最新的材料组件 - 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
我想定义一个替代的按钮样式,它使用我的 secondaryColor 作为背景,并?colorOnSecondary分别用于文本。
但是我很难在样式中定义 textColor 。MaterialButton 正在为使用?colorOnPrimary. 因此,重写很麻烦。
有没有另一种方法可以在没有 selectorDrawable 的情况下设置颜色?
android android-button material-components material-components-android
在Material.io 网站的滑块演示中,他们显示了下面的双拇指滑块,但我找不到如何启用它,我也没有真正找到任何文档。它可用于android组件吗?
android slider material-design material-components android-slider