我在android中有一个可点击的列表视图,当我选择一个项目时,涟漪效果正常工作,但我更改了我的样式文件,为按钮中的涟漪效果工作添加了此行
<style name="InflorTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
//other things
<item name="colorControlHighlight">@color/ripple_material_dark</item>
</style>
添加此行后,涟漪效果在按钮中起作用,但在listview中不起作用。
有什么建议可以解决我的问题吗?
这是我的文件:
<resources>
<style name="InflorTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">@color/colorAccent</item>
<item name="colorControlHighlight">@color/ripple_material_dark</item>
</style>
<style name="InflorTheme" parent="InflorTheme.Base">
</style>
<style name="InflorTheme.Splash" parent="android:Theme">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
这是我的风格v-21:
<resources>
<style name="InflorTheme" parent="InflorTheme.Base">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>
</resources>
这是我的列表视图:
<Mvx.MvxListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/listBoletins"
android:footerDividersEnabled="true"
android:headerDividersEnabled="true"
android:dividerHeight="1dp"
android:textFilterEnabled="false"
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
local:MvxBind="ItemsSource Boletins; ItemClick BoletimClickCommand"
local:MvxItemTemplate="@layout/boletinsitem" />
答案 0 :(得分:2)
在要在适配器中呈现的项目中添加此项。
android:foreground="?attr/selectableItemBackground"
android:clickable="true"
在你看来
答案 1 :(得分:0)
为什么你这么简单的事情如此复杂。你应该使用Listview或&#34; appcompat listview&#34; mvxListView的内容,并尝试根据您的要求改变您的风格。
如果您对自定义列表视图有自己的限制,那么您应该尝试这样。 myview 是您的布局视图
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
View myView = findViewById(R.id.myView);
int[] attrs = new int[]{R.attr.selectableItemBackground};
TypedArray typedArray = getActivity().obtainStyledAttributes(attrs);
int backgroundResource = typedArray.getResourceId(0, 0);
myView.setBackgroundResource(backgroundResource);
}
并在xml文件中添加此行
<android:background="?android:attr/selectableItemBackground">
答案 2 :(得分:0)
简单
<ListView
...
android:drawSelectorOnTop="true"/>
将在列表视图上启用波纹效果。