我正在实现底部导航菜单。但未选择菜单中的第一项。我注意到,当我更改栏背景的颜色时,它会显示出来,原因是第一个项目“启用”颜色与导航栏的背景颜色相同。如何更改已启用选项卡以及其余项目的颜色。默认情况下它们是黑色的......假设我想将它们更改为白色。感谢主要活动的图片。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
我的自定义复选框 ( 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
我正在尝试创建一个 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
正如标题所说,我不知道如何解决这个问题。我读过这个问题,但那是在 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
我在底部导航视图中有 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
我刚刚添加com.google.android.material到我的项目中,底部导航栏颜色更改为黑色。截图在这里
添加后com.google.android.material:material:1.1.0
我正在使用 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
我如何从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
这是我的材质按钮代码:
<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
我的应用程序使用 MaterialDatePicker。我想创建一个类,除其他数据外,还将存储 MaterialDatePicker 中的日期。\n我有一些问题:
\n这是我与 MaterialDatePicker 的活动代码
\npublic 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) android ×10
material-components-android ×10
java ×2
android-bottomnavigationview ×1
android-xml ×1
androidx ×1
material-ui ×1
xml ×1