我想更改右侧图标错误(带有!符号的图像)的样式TextInputLayout但我不知道如何更改。
有可能的?。

android android-textinputlayout material-components material-components-android
我根据新的材质指南更改了 Apptheme 属性,因此我在所有项目中使用的材质按钮丢失了它们的主题颜色。
我尝试通过将默认设置设为父项并让它们更改其主要和次要颜色来制作自定义样式。
按钮的 XML 文件
<com.google.android.material.button.MaterialButton
android:id="@+id/bs_create_business"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left|center_vertical"
android:text="@string/create_business"
android:textAllCaps="true"
app:backgroundTint="@color/browser_actions_bg_grey" />
Run Code Online (Sandbox Code Playgroud)
样式文件
<style name="AppTheme"parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/foopprimary_500</item>
<item name="colorPrimaryDark">@color/foopprimary_900</item>
<item name="colorAccent">@color/foopsecondary_500</item>
<itemname="android:windowBackground">@android:color/white</item>
<item name="fontFamily">@string/default_font</item>
<item name="colorSecondary">@color/foopsecondary_500</item>
<item name="colorOnSecondary">@color/foopprimary_500</item>
</style>
Run Code Online (Sandbox Code Playgroud)
android android-button material-design material-components material-components-android
我想以TextInputLayout编程方式为我的启动图标设置开始图标,但我遇到了他的颜色问题。当我设置 drawable 时,它的颜色变成灰色,但它的原始颜色是橙色。我知道我可以通过startIconTint在 xml 中使用参数来改变它的颜色,但我想以编程方式改变它的颜色。有人可以帮我弄这个吗。
android material-design android-textinputlayout material-components material-components-android
我尝试使用CollapsingToolbarLayout. 但是应用程序崩溃了,日志是
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gbs.lms/com.gbs.lms.MainActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class android.support.design.widget.CollapsingToolbarLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)
at android.app.ActivityThread.access$800(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1305)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5293)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class android.support.design.widget.CollapsingToolbarLayout
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:757)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:916)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:802)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
at com.gbs.lms.MainActivity.onCreate(MainActivity.java:31)
at android.app.Activity.performCreate(Activity.java:5990)
at …Run Code Online (Sandbox Code Playgroud) android android-support-library android-collapsingtoolbarlayout material-components material-components-android
我决定在 android 上尝试材质警报对话框。我遇到的问题是当我尝试应用某些样式时。检查文档,我发现了这个:
<item name="materialAlertDialogTheme">@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog</item>
Run Code Online (Sandbox Code Playgroud)
所以我决定试试这个:
<style name="BaseTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="materialAlertDialogTheme">@style/Theme.App.MaterialDialogAlert</item>
</style>
<style name="Theme.App.MaterialDialogAlert" parent="ThemeOverlay.MaterialComponents.Dialog.Alert">
<!-- FIXME: this does not work. it does not change the title appearance. -->
<!-- <item name="materialAlertDialogTitleTextStyle">@style/TextAppearance.App.MaterialDialogAlert.Title.Text</item>-->
<!-- FIXME: this change only the title font, not the message appearance -->
<item name="android:fontFamily">@font/nunito_semi_bold</item>
<item name="buttonBarPositiveButtonStyle">@style/Widget.App.Button.TextButton</item>
<item name="buttonBarNegativeButtonStyle">@style/Widget.App.Button.TextButton</item>
</style>
<style name="TextAppearance.App.MaterialDialogAlert.Title.Text" parent="MaterialAlertDialog.MaterialComponents.Title.Text">
<item name="android:fontFamily">@font/nunito_semi_bold</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但到目前为止,我可以成功地设置按钮样式。对于标题和消息,我有一些问题。现在我可以通过以下方式将一些样式应用于标题:
<item name="android:fontFamily">@font/nunito_semi_bold</item>
Run Code Online (Sandbox Code Playgroud)
但我不认为这是正确的方法。首先,这不会将字体应用于消息部分。其次,我想应用其他文本样式,一种用于标题,一种用于消息部分。
我也试过检查这种风格:MaterialAlertDialog.MaterialComponents.Title.Text我可以看到这个项目在某个时候被应用:
<item name="android:textAppearance">?attr/textAppearanceSubtitle1</item>
Run Code Online (Sandbox Code Playgroud)
所以我决定在我的基本主题中声明:
<style name="BaseTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="textAppearanceSubtitle1">@style/TextAppearance.App.Subtitle1</item>
</style>
<style name="TextAppearance.App.Subtitle1" parent="TextAppearance.MaterialComponents.Subtitle1">
<item …Run Code Online (Sandbox Code Playgroud) android android-alertdialog material-design material-components material-components-android
我想让我的导航视图的背景是#121212,但是它变成了一个更浅的灰色。然而,当应用相同的颜色作为背景时,视图中的项目会显示正确的颜色。
android:background="@color/navview"
app:itemBackground="@color/navview"
Run Code Online (Sandbox Code Playgroud)
测试项的背景设置为与导航视图背景相同的颜色,但是如下所示的颜色存在惊人的差异。
导航视图背景是否有过滤器?我尝试通过将背景色调模式设置为空来禁用它,
nvView.backgroundTintMode = null
Run Code Online (Sandbox Code Playgroud)
然而它似乎没有效果。任何帮助表示赞赏!
编辑:
<androidx.drawerlayout.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/navigation_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/navview"
android:fitsSystemWindows="true">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" />
<com.google.android.material.navigation.NavigationView
android:id="@+id/nvView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
android:background="@color/navview"
app:itemBackground="@color/navview"
app:menu="@menu/toolbar_menu">
</com.google.android.material.navigation.NavigationView>
</androidx.drawerlayout.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
我的导航视图的背景颜色不正确,项目的背景颜色正确。我想要达到的颜色是#121212。
android kotlin android-navigationview material-components material-components-android
我在互联网上浏览了各种解决方案,这使我们能够创建带有圆角的视图。它们中的大多数需要使用创建自定义视图,或者在每次我们需要圆角视图时在 xml 或九补丁中创建一个 drawable。
问题是,当我实现这样的视图时,我需要为每个这样的视图创建一个 drawable,即使两个视图除了背景颜色之外的所有东西都一样。这对我来说有点刺激,我听说 iOS 框架提供了一种创建圆角视图的好方法。任何帮助将非常感激。
编辑:除了圆角,视图和阴影的按压效果也是常用的样式。请让您的解决方案包含这些影响。
android android-shapedrawable material-components material-components-android
我在 Android 项目中使用Material Design Button。我想在按下按钮时在按钮上创建一个进度指示器。Material Design 似乎还没有支持它。
有没有人建议我如何在 Material Design Button 中实现相同的目标。
谢谢
android android-button material-design material-components material-components-android
我已经使用MaterialDatePicker来选择单个日期,而且我已经完成了这项任务,但我无法更改标题和按钮的主题。
MaterialDatePicker.Builder builder;
MaterialDatePicker materialDatePicker;
long today = MaterialDatePicker.todayInUtcMilliseconds();
CalendarConstraints.Builder con = new CalendarConstraints.Builder();
con.setValidator(DateValidatorPointForward.now());
builder.setSelection(today);
builder.setCalendarConstraints(con.build());
materialDatePicker = builder.build();
findViewById(R.id.startCalender).setOnClickListener(v ->
materialDatePicker.show(getSupportFragmentManager(), builder.toString())
);
materialDatePicker.addOnPositiveButtonClickListener(selection ->
Toast.makeText(this, materialDatePicker.getHeaderText(),
Toast.LENGTH_SHORT).show());
Run Code Online (Sandbox Code Playgroud)

android android-datepicker material-design material-components material-components-android
我尝试使用style它shapeAppearance:
<style name="ShapeAppearance.Button" parent="ShapeAppearance.MaterialComponents">
<item name="cornerFamily">rounded</item>
<item name="cornerSizeTopLeft">@dimen/button_corner_radius</item>
<item name="cornerSizeTopRight">5dp</item>
<item name="cornerSizeBottomRight">@dimen/button_corner_radius</item>
<item name="cornerSizeBottomLeft">5dp</item>
</style>
<dimen name="button_corner_radius">40dp</dimen>
Run Code Online (Sandbox Code Playgroud)
我像这样在我的 MaterialButton 中应用样式:
app:shapeAppearance="@style/ShapeAppearance.Button"
Run Code Online (Sandbox Code Playgroud)
结果是:
现在,我尝试放置一个线性渐变:
例如 :
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#DF2D48"
android:centerColor="#D72D46"
android:endColor="#AC2139"
android:angle="360" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我在我的形状样式中使用它:
<item name="android:background">@drawable/test</item>
Run Code Online (Sandbox Code Playgroud)
但结果是一样的。为什么 ?
android android-button android-styles material-components material-components-android