最近,MDL(Material Design Lite)项目的后续版本作为Web的材料组件推出.其目标之一是"与其他JS框架和库无缝集成".
还有另一个项目Angular Material2,专门为Angular(v2 +)提供材料设计组件.
这两个项目都在创建基于材料设计的UI组件.此外,它们具有类似的组件准备/在线开发,以及即将到来的相同组件(在此处和此处列出).
有人可以帮我理解2个项目之间的重叠,我应该选择哪个新项目?
从根本上讲,我确实理解Angular Material2将更加无缝地与Angular项目紧密集成,而Web的Material Components将为多个JS框架提供钩子.但我没有看到重叠的原因,哪一个会有更多的动力(阅读更多的组件).
我有一个自定义的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
我在我的一个布局文件中有一个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属性?
我使用 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
有人试图改变浮标的字体吗?我更改了EditText的源代码,但浮动标签的字体没有改变,我非常感谢那些帮助我的人
码:
<android.support.design.widget.TextInputLayout
android:id="@+id/tilTextoDescricao"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/tilValorUnidade"
android:layout_marginTop="10dp">
<EditText
android:id="@+id/etTextoDescricao"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:hint="Descrição"
android:textSize="15dp"
android:inputType="text" />
</android.support.design.widget.TextInputLayout>
-----------------
etTextoDescricao= (EditText) findViewById(R.id.etTextoDescricao);
etTextoDescricao.setTypeface(CustomTypeface.getTypefaceMediumDefault(this));
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-design-library android-textinputlayout material-components
我创建了一些应用程序,我想在其中插入一个 BottomNavigationView。
该代码运行良好,但是一旦我将 gradle 更改为 androidx,它就停止工作了。
我的布局中的组件 (activity_about):
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/bottom_navigation"
app:itemBackground="@color/colorWhite"
app:itemIconTint="@drawable/bottom_navigation_foreground"
app:itemTextColor="@drawable/bottom_navigation_foreground" />
Run Code Online (Sandbox Code Playgroud)
菜单文件是:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/navigation_library"
android:enabled="true"
app:showAsAction="ifRoom"
android:title="Library"
android:icon="@drawable/ic_home_black_24dp"/>
<item
android:id="@+id/navigation_search"
android:enabled="true"
app:showAsAction="ifRoom"
android:title="Search"
android:icon="@drawable/ic_search_black_24dp"/>
<item
android:id="@+id/navigation_profile"
android:enabled="true"
app:showAsAction="ifRoom"
android:title="Profile"
android:icon="@drawable/ic_account_circle_black_24dp"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
可绘制文件(bottom_navigation_foreground):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/colorPurpleFont" />
<item android:state_checked="false" android:color="@color/Gray" />
</selector>
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
public class AboutActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { …Run Code Online (Sandbox Code Playgroud) android bottomnavigationview material-components material-components-android androidx
如何更改所有按钮的文字颜色?
我知道我可以设置背景颜色如下:
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="colorButtonNormal">@color/buttonColor</item>
</style>
Run Code Online (Sandbox Code Playgroud)
如何为按钮Text执行此操作?
android android-button material-design material-components material-components-android
从支持库和材料中尝试芯片组件
com.google.android.support:design:28.0.0-rc01
com.google.android.material:material:1.0.0-rc01
堆栈跟踪
Run Code Online (Sandbox Code Playgroud)android.view.InflateException: Binary XML file line #72: Binary XML file line #72: Error inflating class com.google.android.material.chip.Chip at android.view.LayoutInflater.inflate(LayoutInflater.java:551) at android.view.LayoutInflater.inflate(LayoutInflater.java:429)`
布局
<com.google.android.material.chip.Chip
android:id="@+id/chip"
style="style/Widget.MaterialComponents.Chip.Entry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account"
app:closeIconEnabled="true" />`
Run Code Online (Sandbox Code Playgroud) android android-support-library android-chips material-components material-components-android
我目前正在使用 Material Design TextInputLayout OutlinedBox,如下所示:
<android.support.design.widget.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/myEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Title"
android:inputType="text"/>
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
我正在尝试Spinner在 TextInputEditText 下添加一个下拉框,并希望保持相同的样式:OutlinedBox。
我看到 Material Design, Material Design Text Fields似乎支持下拉菜单。如此处所示的区域:
我目前正在使用 Spinner 生成下拉菜单。
<Spinner
style="@style/Widget.AppCompat.Spinner.DropDown"
android:id="@+id/option"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:dropDownWidth="match_parent" />
Run Code Online (Sandbox Code Playgroud)
似乎不可能按照 OutlinedBox 设计添加下拉菜单。是否有一个库可以让我实现这一点,或者是否有更好的方法在 Material Design 中实现这一点?
android material-design android-textinputlayout material-components material-components-android