我已将appCompat材质设计添加到我的应用程序中,似乎警报对话框未使用我的primary,primaryDark或强调颜色.
这是我的基本风格:
<style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
<item name="android:textColorPrimary">@color/action_bar_gray</item>
</style>
Run Code Online (Sandbox Code Playgroud)
根据我的理解,对话框按钮文本也应该使用这些颜色.我的理解是错的还是我还需要做些什么?
解:
明确的答案让我走上正轨.
<style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
<item name="android:actionModeBackground">@color/apptheme_color_dark</item>
<item name="android:textColorPrimary">@color/action_bar_gray</item>
<item name="sdlDialogStyle">@style/DialogStyleLight</item>
<item name="android:seekBarStyle">@style/SeekBarNavyTheme</item>
</style>
<style name="StyledDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
</style>
Run Code Online (Sandbox Code Playgroud) android android-appcompat android-support-library material-design material-components-android
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="m3_ref_palette_dynamic_neutral0">@android:color/system_neutral1_1000</color>
<color name="m3_ref_palette_dynamic_neutral10">@android:color/system_neutral1_900</color>
<color name="m3_ref_palette_dynamic_neutral100">@android:color/system_neutral1_0</color>
<color name="m3_ref_palette_dynamic_neutral20">@android:color/system_neutral1_800</color>
<color name="m3_ref_palette_dynamic_neutral30">@android:color/system_neutral1_700</color>
<color name="m3_ref_palette_dynamic_neutral40">@android:color/system_neutral1_600</color>
<color name="m3_ref_palette_dynamic_neutral50">@android:color/system_neutral1_500</color>
<color name="m3_ref_palette_dynamic_neutral60">@android:color/system_neutral1_400</color>
<color name="m3_ref_palette_dynamic_neutral70">@android:color/system_neutral1_300</color>
<color name="m3_ref_palette_dynamic_neutral80">@android:color/system_neutral1_200</color>
<color name="m3_ref_palette_dynamic_neutral90">@android:color/system_neutral1_100</color>
<color name="m3_ref_palette_dynamic_neutral95">@android:color/system_neutral1_50</color>
<color name="m3_ref_palette_dynamic_neutral99">@android:color/system_neutral1_10</color>
<color name="m3_ref_palette_dynamic_neutral_variant0">@android:color/system_neutral2_1000</color>
<color name="m3_ref_palette_dynamic_neutral_variant10">@android:color/system_neutral2_900</color>
<color name="m3_ref_palette_dynamic_neutral_variant100">@android:color/system_neutral2_0</color>
<color name="m3_ref_palette_dynamic_neutral_variant20">@android:color/system_neutral2_800</color>
<color name="m3_ref_palette_dynamic_neutral_variant30">@android:color/system_neutral2_700</color>
<color name="m3_ref_palette_dynamic_neutral_variant40">@android:color/system_neutral2_600</color>
<color name="m3_ref_palette_dynamic_neutral_variant50">@android:color/system_neutral2_500</color>
<color name="m3_ref_palette_dynamic_neutral_variant60">@android:color/system_neutral2_400</color>
<color name="m3_ref_palette_dynamic_neutral_variant70">@android:color/system_neutral2_300</color>
<color name="m3_ref_palette_dynamic_neutral_variant80">@android:color/system_neutral2_200</color>
<color name="m3_ref_palette_dynamic_neutral_variant90">@android:color/system_neutral2_100</color>
<color name="m3_ref_palette_dynamic_neutral_variant95">@android:color/system_neutral2_50</color>
<color name="m3_ref_palette_dynamic_neutral_variant99">@android:color/system_neutral2_10</color>
<color name="m3_ref_palette_dynamic_primary0">@android:color/system_accent1_1000</color>
<color name="m3_ref_palette_dynamic_primary10">@android:color/system_accent1_900</color>
<color name="m3_ref_palette_dynamic_primary100">@android:color/system_accent1_0</color>
<color name="m3_ref_palette_dynamic_primary20">@android:color/system_accent1_800</color>
<color name="m3_ref_palette_dynamic_primary30">@android:color/system_accent1_700</color>
<color name="m3_ref_palette_dynamic_primary40">@android:color/system_accent1_600</color>
<color name="m3_ref_palette_dynamic_primary50">@android:color/system_accent1_500</color>
<color name="m3_ref_palette_dynamic_primary60">@android:color/system_accent1_400</color>
<color name="m3_ref_palette_dynamic_primary70">@android:color/system_accent1_300</color>
<color name="m3_ref_palette_dynamic_primary80">@android:color/system_accent1_200</color>
<color name="m3_ref_palette_dynamic_primary90">@android:color/system_accent1_100</color>
<color name="m3_ref_palette_dynamic_primary95">@android:color/system_accent1_50</color> …Run Code Online (Sandbox Code Playgroud) android multiview kotlin android-recyclerview material-components-android
最近我从支持库切换到com.google.android.material:material:1.0.0
但是现在我有一个问题,在这个页面上有一个注释https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md
注意:使用"材质成分"主题可启用自定义视图填充程序,该填充程序将使用"材质"对应项替换默认组件.目前,这仅使用MaterialButton替换Button XML组件.
我正在使用的主题
Theme.MaterialComponents.Light.NoActionBar
Run Code Online (Sandbox Code Playgroud)
它完全按照它在说明中所说的,它将AlertDialog按钮替换为MaterialButtons,但问题是默认情况下MaterialButtons是彩色背景,现在按钮看起来像这样: 
我怎样才能让它们再次无边界和无背景?
PS我正在使用警报构建器来创建警报对话框:
android.app.AlertDialog.Builder
Run Code Online (Sandbox Code Playgroud) android android-alertdialog android-styles material-design material-components-android
我有一个自定义的BttomSheetDialogFragment,我希望在底部视图的顶部有圆角
这是我的自定义类,它让我希望从底部显示我的布局
View mView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.charge_layout, container, false);
initChargeLayoutViews();
return mView;
}
Run Code Online (Sandbox Code Playgroud)
我也有这个xml资源文件作为背景:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<corners android:topRightRadius="35dp"
android:topLeftRadius="35dp"
/>
<solid android:color="@color/white"/>
<padding android:top="10dp"
android:bottom="10dp"
android:right="16dp"
android:left="16dp"/>
Run Code Online (Sandbox Code Playgroud)
但问题是,当我将此资源文件设置为我的Layout的根元素的背景时,角落仍然没有舍入
我不能使用下面的代码:
this.getDialog().getWindow().setBackgroundDrawableResource(R.drawable.charge_layout_background);
Run Code Online (Sandbox Code Playgroud)
因为它覆盖BottomSheetDialog的默认背景,并且在我的底视图上方不会有任何半透明的灰色
android material-design bottom-sheet material-components material-components-android
我想要实现的是类似于 Instagram 应用程序内网络浏览器,当您点击广告时使用:
我所做的,是我使用了一个 WebView bottomSheetDialogFragment,然后我重写onCreateDialog以获得这样的全屏:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
BottomSheetDialog bottomSheetDialog=(BottomSheetDialog)super.onCreateDialog(savedInstanceState);
bottomSheetDialog.setOnShowListener(dialog -> {
BottomSheetDialog dialogc = (BottomSheetDialog) dialog;
FrameLayout bottomSheet = dialogc .findViewById(android.support.design.R.id.design_bottom_sheet);
BottomSheetBehavior.from(bottomSheet).setState(BottomSheetBehavior.STATE_EXPANDED);
//BottomSheetBehavior.from(bottomSheet).setSkipCollapsed(true);
//BottomSheetBehavior.from(bottomSheet).setHideable(true);
});
return bottomSheetDialog;
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:
我的问题是,如何获得全屏效果,或者如何实现类似 instagram 浏览器的功能?
ps:我首先尝试了 chrome 自定义选项卡,但无法将其添加到对话框片段中。
谢谢你。
android material-design bottom-sheet material-components material-components-android
我想用
记住脚手架状态()
在android Material3 compose中,但无法使用它。
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun AppFeatureScreen(viewModel: AppFeatureViewModel = viewModel()) {
val scaffoldState = rememberScaffoldState()
Scaffold() {
}
}
Run Code Online (Sandbox Code Playgroud) android kotlin material-components-android android-jetpack-compose android-jetpack-compose-material3
我想要 Jetpack Compose 中的一行,如下所示:
----------------------------------------------------
| A | B | | C |
----------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我希望 A 和 B 左对齐,彼此相邻,C 在最后。不知道现有的横向排列是否有办法做到这一点。我还认为,嵌套行可能不是一个好主意。实现这一目标的最佳方法是什么?
android android-jetpack material-components-android android-jetpack-compose
我在我的一个布局文件中有一个com.google.android.material.button.MaterialButton组件,当我使用最新版本的Material Components库时,我收到此错误(com.google.android.material:material:1.0 0.0-素α3):
java.lang.IllegalArgumentException:此组件要求您指定有效的android:textAppearance属性.
它不存在于1.0.0-alpha1中.这是库中的错误还是我现在应该只指定textAppearance属性?
如何在AndroidX中的布局XML中添加cardview
升级到AndroidX之后
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp">
Run Code Online (Sandbox Code Playgroud)
给出一个错误
找不到以下类:-android.support.v7.widget.CardView(修复构建路径,编辑XML,创建类)
dependencies {
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在AndroidX下的xml中使用CardView
谢谢
android android-appcompat android-cardview material-components-android androidx
我使用 MaterialCardView 作为我的cardview布局。现在,Android-studio 开始向我展示,而不是 current implementation "com.google.android.material:material:1.0.0",我应该更新到1.1.0
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/edit_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:layout_margin="@dimen/activity_vertical_margin">
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="8dp"
app:cardElevation="8dp">
<...more layout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
使用 1.1.0,我崩溃了 Error inflating class com.google.android.material.card.MaterialCardView
所以,我有3种情况:
1.0.0和使用MaterialCardView(工作,但不是首选)1.1.0(或 1.2.0-alpha)并使用androidx.CardView(工作,但不是首选)1.1.0并更改MaterialCardView(首选,但不起作用)由于我想使用选项 #3,而且我没有任何解决方案,有人可以提供线索吗?
更新
我的风格(我也有风格和风格之夜。我在这里发布style唯一的):
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item …Run Code Online (Sandbox Code Playgroud) android android-layout android-cardview material-components material-components-android
android ×10
material-components-android ×10
bottom-sheet ×2
kotlin ×2
android-jetpack-compose-material3 ×1
androidx ×1
multiview ×1