标签: material-components-android

BottomNavigationView 中的所选项目与背景颜色相同

我正在实现底部导航菜单。但未选择菜单中的第一项。我注意到,当我更改栏背景的颜色时,它会显示出来,原因是第一个项目“启用”颜色与导航栏的背景颜色相同。如何更改已启用选项卡以及其余项目的颜色。默认情况下它们是黑色的......假设我想将它们更改为白色。感谢主要活动的图片。http://pctechtips.org/apps/activity.png 菜单 xml 文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/ic_home_black_24dp"
        android:title="@string/title_home" />

    <item
        android:id="@+id/navigation_dashboard"
        android:icon="@drawable/ic_dashboard_black_24dp"
        android:title="@string/title_dashboard" />

    <item
        android:id="@+id/navigation_notifications"
        android:icon="@drawable/ic_notifications_black_24dp"
        android:title="@string/title_notifications" />
</menu>
Run Code Online (Sandbox Code Playgroud)

活动主文件

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

    <org.techgeorge.textrecon.PaintView
        android:id="@+id/paintView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"
        app:menu="@menu/bottom_nav_menu" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

android bottomnavigationview android-bottomnav material-components material-components-android

3
推荐指数
2
解决办法
6876
查看次数

自定义后材质复选框样式

我的自定义复选框 ( MyCheckbox) 已从 扩展androidx.appcompat.widget.AppCompatCheckBox,但默认样式不适用于它。

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    ...
    <item name="android:checkboxStyle">@style/CheckboxTheme</item>
    <item name="checkboxStyle">@style/CheckboxTheme</item>
</style>

<style name="CheckboxTheme" parent="@style/Widget.AppCompat.CompoundButton.CheckBox">
     <!-- for example try to change background -->
    <item name="android:background">@color/colorPrimary</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但在预览和运行时没有改变任何东西。

另外,我迁移了 MaterialComponent (从 扩展com.google.android.material.checkbox.MaterialCheckBox)版本:

com.google.android.material:material:1.1.0-beta01
Run Code Online (Sandbox Code Playgroud)

并用于@style/Widget.MaterialComponents.CompoundButton.CheckBox样式。但没有改变。

注意: 当我提到每个实例的样式时,此问题就修复了:

            <com.something.MyCheckBox
                android:id="@+id/ch"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="some thing"
                style="@style/CheckboxTheme"
             />
Run Code Online (Sandbox Code Playgroud)

但我想为此类的所有实例设置此样式。 你可以帮帮我吗?

android android-custom-view material-components material-components-android androidx

3
推荐指数
1
解决办法
5078
查看次数

在 Android 中以编程方式创建包含具有自定义样式的 MaterialButton 的 MaterialButtonToggleGroup

我正在尝试创建一个 MaterialButtonToggleGroup,其中包含材质按钮,并且我想使用自定义样式来做到这一点。

我能够使用 xml 创建它,但是,我需要以编程方式实现相同的结果

这是我对 xml 所做的事情(我使用 LinearLayout 作为根视图):

<com.google.android.material.button.MaterialButtonToggleGroup
  android:id="@+id/group_item_size"
  style="@style/ButtonsToggleGroupStyle"
  >

  <com.google.android.material.button.MaterialButton
    style="@style/ButtonStyle"
    android:text="Small"
    />

  <com.google.android.material.button.MaterialButton
    style="@style/ButtonStyle"
    android:text="Large"
    />

  <com.google.android.material.button.MaterialButton
    style="@style/ButtonStyle"
    android:text="Family"
    />

</com.google.android.material.button.MaterialButtonToggleGroup>
Run Code Online (Sandbox Code Playgroud)

以及样式的代码:

      <style name="ButtonStyle" parent="Widget.MaterialComponents.Button.UnelevatedButton">
    <item name="cornerRadius">@dimen/margin_20dp</item>
    <item name="android:padding">@dimen/margin_8dp</item>
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">match_parent</item>
    <item name="android:layout_weight">1</item>
    <item name="android:textSize">@dimen/text_size_14sp</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:textColor">@drawable/drawable_button_toggle_group_text_selector</item>
    <item name="android:backgroundTint">@drawable/drawable_button_toggle_group_selector</item>
  </style>

  <style name="ButtonsToggleGroupStyle">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_gravity">center</item>
    <item name="android:orientation">horizontal</item>
    <item name="android:layout_marginStart">@dimen/margin_32dp</item>
    <item name="android:layout_marginTop">@dimen/margin_12dp</item>
    <item name="android:layout_marginEnd">@dimen/margin_32dp</item>
  </style>
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助

android android-layout android-button android-togglebutton material-components-android

3
推荐指数
1
解决办法
2270
查看次数

Android 中的浮动操作按钮不显示图像?

正如标题所说,我不知道如何解决这个问题。我读过这个问题,但那是在 2018 年,我不太熟悉所有这些库和依赖项及其工作原理。但从我从 Android Studio 声明的依赖关系来看,这就是我得到的:

在此输入图像描述

我想向 FAB 添加某种“附加文档”图标/图像。我尝试通过添加New Vector资源来做到这一点,但图像没有出现在我的可绘制文件夹中。如何向我的项目添加漂亮的图标/图像,并将其设置为 FAB?

这是 XML:

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:icon="@drawable/attache_file">

    </com.google.android.material.floatingactionbutton.FloatingActionButton>
Run Code Online (Sandbox Code Playgroud)

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

3
推荐指数
1
解决办法
2728
查看次数

如何在 Android 中继续显示底部导航菜单标题?

我在底部导航视图中有 5 个图标,当我单击菜单时,我可以看到菜单的标题,如果我单击另一个图标,前一个的标题就会消失。我想继续以 XML 形式显示所有菜单的标题。我该怎么做?

这是我在活动 XML 中的代码。

 <androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true">

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottomNV"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:backgroundTint="@color/light_gray"
        app:itemIconTint="@color/black"
        app:itemTextColor="@color/black"
        app:menu="@menu/bottom_navigation_menu"/>


</androidx.coordinatorlayout.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

这是一个菜单资源文件。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/bottom_menu_home"
    android:enabled="true"
    android:icon="@drawable/bottom_home_inactive"
    android:title="@string/bottom_menu_home" />

<item
    android:id="@+id/bottom_menu_search"
    android:enabled="true"
    android:icon="@drawable/bottom_search_inactive"
    android:title="@string/bottom_menu_search" />

<item
    android:id="@+id/bottom_menu_message"
    android:enabled="true"
    android:icon="@drawable/bottom_message_inactive"
    android:title="@string/bottom_menu_message" />

<item
    android:id="@+id/bottom_menu_reservation"
    android:enabled="true"
    android:icon="@drawable/bottom_reservation_inactive"
    android:title="@string/bottom_menu_reservation" />

<item
    android:id="@+id/bottom_menu_myInfo"
    android:enabled="true"
    android:icon="@drawable/bottom_myinfo_inactive"
    android:title="@string/bottom_menu_myInfo" />
Run Code Online (Sandbox Code Playgroud)

android android-xml bottomnavigationview material-components-android android-bottomnavigationview

3
推荐指数
1
解决办法
2788
查看次数

添加 com.google.android.material 后 Android 底部导航栏颜色变为黑色

我刚刚添加com.google.android.material到我的项目中,底部导航栏颜色更改为黑色。截图在这里

前 在此输入图像描述

添加后com.google.android.material:material:1.1.0

在此输入图像描述

android bottomnavigationview material-components-android

3
推荐指数
1
解决办法
5152
查看次数

从 Firebase 设置 AutoCompleteTextView 材质下拉列表的选定值

我正在使用 AutoCompleteTextView 材料下拉列表将信息添加到我的 Firebase 数据库。这工作正常并且信息被正确捕获。

我现在希望允许我的用户编辑他们之前添加到数据库中的信息。我知道如何更新普通的 EditText 视图,但是当我对 AutoCompleteTextViews 使用相同的方法时,下拉列表仅显示存储在 Firebase 中的值,并且不显示选项的完整下拉列表,以便用户可以选择新值如果他们愿意的话。

我用来显示存储在这些下拉列表的数据库中的当前选定值的代码是

 String activityType = data.getStringExtra("Activity_Type");
Run Code Online (Sandbox Code Playgroud)

然后我使用此代码填充下拉列表

editActivityTypeLayout = findViewById(R.id.editActivityTypeLayout);
    editActivityType = findViewById(R.id.editActivityType);

    final String[] type = new String[]{
            "Formal Education Completed", "Other Completed", "Professional Activities", "Self-Directed Learning", "Work-Based Learning"
    };

    final ArrayAdapter<String> editAdapterType = new ArrayAdapter<>(
            EditActivity.this,
            R.layout.dropdown_item,
            type
    );

    editActivityType.setAdapter(editAdapterType);
Run Code Online (Sandbox Code Playgroud)

但是,如果我包含第一行代码,则此代码不会填充下拉列表。

是否有不同的方式来显示下拉列表的当前值并显示其他选项?

java android android-textinputlayout material-ui material-components-android

3
推荐指数
1
解决办法
2535
查看次数

从片段访问工具栏(MaterialToolbar)?

我如何从using访问 a Toolbar(实际上是 a MaterialToolbar)?Fragmentactivity.actionBar

main_layout.xml(摘录):

<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:liftOnScroll="true">

        <com.google.android.material.appbar.MaterialToolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/AppTheme.PopupOverlay"
            android:background="#ffffff">

        </com.google.android.material.appbar.MaterialToolbar>
        
</com.google.android.material.appbar.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

主要活动(摘录):

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        [..]
        setSupportActionBar(binding.toolbar)
}
Run Code Online (Sandbox Code Playgroud)

我的片段(摘录):

class MyFragment: Fragment() {
    [..]
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        val actNull = activity == null
        Timber.i("DEF: activity == null: $actNull")

        var barNull = activity?.actionBar == null
        Timber.i("DEF: activity.actionbar == null: $barNull")
    }
} …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-fragments android-toolbar material-components-android

3
推荐指数
1
解决办法
1831
查看次数

更新到材质 1.2.0 后,材质按钮上缺少圆角半径属性

这是我的材质按钮代码:

<com.google.android.material.button.MaterialButton
    android:id="@+id/next_button"
    android:layout_width="224dp"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="68dp"
    android:layout_marginTop="510dp"
    android:layout_marginEnd="68dp"
    android:layout_marginBottom="68dp"
    android:background="@color/colorPrimary"
    android:minHeight="60dp"
    android:text="@string/onboarding_next_button"
    android:textColor="@android:color/white"
    app:cornerRadius="25dp" />
Run Code Online (Sandbox Code Playgroud)

将材质库从 1.1.0 更新到 1.2.0 后,app:CornerRadius 将被忽略。我尝试使用形状主题遵循材质文档,但控件仍然完全方形

android android-button material-design material-components-android materialbutton

3
推荐指数
1
解决办法
1634
查看次数

如何从 MaterialDatePicker 获取日期?

我的应用程序使用 MaterialDatePicker。我想创建一个类,除其他数据外,还将存储 MaterialDatePicker 中的日期。\n我有一些问题:

\n
    \n
  1. 如果日期应该可以更改,那么在课堂上保存日期的最佳方法是什么?
  2. \n
  3. 如何从日期选择器材料中获取日期?\n这是我使用日期选择器材料的活动。通过单击复选框,我想将所有这些信息(包括日期)保存到类对象中。
  4. \n
\n

这是我与 MaterialDatePicker 的活动代码

\n
public class NewEvent extends AppCompatActivity {\nTextInputEditText etDate, etEventId;\nAutoCompleteTextView etType, etNotif;\nMaterialToolbar toolbarNE;\nSharedPreferences sharedPreferences;\n\nprivate static final String TAG = "myLogs";\nstatic final String newEv = "newEv";\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n    super.onCreate(savedInstanceState);\n    setContentView(R.layout.new_event);\n    final FragmentManager fragmentManager = getSupportFragmentManager();\n    final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();\n\n    final FirstFragment fragment1 = new FirstFragment();\n\n    etDate = findViewById(R.id.etDate);\n    etType = findViewById(R.id.etType);\n    etNotif = findViewById(R.id.etNotif);\n    etEventId = findViewById(R.id.etEventId);\n    toolbarNE = findViewById(R.id.menuNewEvent);\n\n    toolbarNE.setOnMenuItemClickListener(new MaterialToolbar.OnMenuItemClickListener() {\n        @Override\n …
Run Code Online (Sandbox Code Playgroud)

java android android-datepicker material-components-android

3
推荐指数
1
解决办法
3254
查看次数