Android - 没有涟漪效应&工具栏中的菜单项没有工具提示

时间:2017-06-13 20:37:44

标签: android android-layout android-toolbar android-theme

我有一点问题:"工具提示"长按菜单项时显示的内容不再出现,涟漪效果也不会对工具栏菜单项产生影响。仍然,涟漪效应出现在我的布局中的按钮上,但不在工具栏中。

我没有为工具栏声明主题或样式,但我经常在运行时更改其颜色(但不是直接在onCreate中,所以这不重要,因为它也是没有改变颜色就无法工作。)

像这样的其他解决方案对我来说没有用......

工具栏的XML:

go env

工具栏代码:

<android.support.v7.widget.Toolbar
        android:background="@color/Grey"
        android:id="@+id/my_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_alignParentTop="true"
        android:elevation="4sp"
        android:layout_alignParentStart="true" />

充气菜单:

myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);

我的主题是来自AppCOmpatDark(NoActionBar one)和onPrepareOptionsMenu的孩子,我经常更改菜单项的可见性&amp;改变他们的颜色...

非常感谢任何帮助,也包括可能触发此错误的指示。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我相信在更改应用程序中某些行的背景颜色时,我遇到了类似的问题。我发现选择项目时的涟漪效应是由于更改了默认颜色而在背景下绘制。

在我的ListView中,我添加了XML属性android:drawSelectorOnTop="true",它将Ripple效果带到了前景。

将相同的属性添加到代码中可能会解决您的问题。

Android Documentation

答案 1 :(得分:0)

即使由于AppTheme我也遇到了类似的问题。我使用const Sample = () => { const [autocomplete, setAuto] = React.useState(null); const handleAutocomplete = (event, newValue) => { if (newValue != null) { console.log(newValue.id) setAuto(newValue); } } return ( <Autocomplete options={options} style={{ width: '80%', padding: '10px '}} getOptionLabel={ options => (options.nombres +" "+options.apellidos) } onChange={handleAutocomplete} renderInput={params => ( <TextField { ...params} label="Selecciona..." fullWidth/> )} /> ); }; const options = [ { nombres: 'Juan García', apellidos: 'Oliver', id: 1, }, { nombres: 'Melchor', apellidos: 'Martínez', id: 2, }, { nombres: 'Ricardo', apellidos: 'Sanz', id: 3, }, ] export default Sample; 作为App的默认主题,并且仅对工具栏使用,波纹效果不起作用。但是我使用app:theme解决了它。

请尝试将Theme.MaterialComponents.NoActionBar添加到工具栏。这是app:theme="@style/Theme.AppCompat.Light.NoActionBar"的测试,对我有用。

androidx.appcompat.widget.Toolbar

现在您所要做的就是在视图中添加<androidx.appcompat.widget.Toolbar 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:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@android:color/white" app:layout_collapseMode="pin" android:elevation="4dp" app:theme="@style/Theme.AppCompat.Light.NoActionBar" android:stateListAnimator="@animator/appbar_elevation" tools:targetApi="lollipop"> ,以达到波纹/触摸效果。

android:background="?attr/selectableItemBackground"