大佬教程收集整理的这篇文章主要介绍了如何在Floating Action Mode中在Android 9上显示菜单项图标 ,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<item
android:id="@+id/action_share"
android:orderInCategory="100"
android:icon="@drawable/ic_social_share"
app:showAsAction="always"
android@R_473_6964@="" />
<item
android:id="@+id/action_something_else"
android:orderInCategory="200"
android:icon="@drawable/ic_airplanemode_active_black_24dp"
app:showAsAction="always"
android@R_473_6964@="" />
我的Android代码类似于:
private void startActionMode() {
startActionMode(new android.view.ActionMode.CallBACk2() {
@Override
public Boolean onCreateActionMode(final android.view.ActionMode mode,final Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.main,menu);
mode.settitle("FLOATinG!!!!!");
return true;
}
@Override
public Boolean onPrepareActionMode(final android.view.ActionMode actionMode,final Menu menu) {
return false;
}
@Override
public Boolean onActionItemClicked(final android.view.ActionMode actionMode,final MenuItem menuItem) {
return false;
}
@Override
public void onDestroyActionMode(final android.view.ActionMode actionModE) {
}
},android.view.ActionMode.TYPE_FLOATinG);
}
当我将Android应用程序部署到Android 8设备时,浮动操作模式会根据需要显示图标.
但是,当我将Android应用程序部署到Android 9设备时,浮动操作模式为空,尽管有足够的空间放置图标,并且可以看到图标应位于的背景波纹效果.
如何在Android 9上使用android.view.ActionMode.TYPE_FLOATinG并查看每个菜单项的图标?
我的gradle文件类似于:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
defaultConfig {
applicationId "org.research.development"
minSdkVersion 23
targetSdkVersion 28
versionCode 1
versionName "1.0"
testinstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs',include: ['*.jar'])
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0-alpha4',{
exclude group: 'com.android.support',module: 'support-Annotations'
})
implementation 'androidx.appcompat:appcompat:1.1.0-alpha02'
implementation 'androidx.consTraintlayout:consTraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
}
这是我的申请方式
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="android:windowDisablePreview">true</item>
<item name="windowActionBar">false</item>
<item name="android:textColorPriMary">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
<item name="actionMenuTextColor">@android:color/white</item>
<item name="android:windowNotitle">true</item>
<item name="colorPriMary">@color/colorPriMary</item>
<item name="colorPriMaryDark">@color/colorPriMaryDark</item>
<item name="colOraccent">@color/colOraccent</item>
<!-- It should be true otherwise action mode will not overlay toolbar -->
<item name="windowActionModeOverlay">true</item>
<!-- For Custom Action Mode BACkground Color/Drawable -->
<item name="actionModeBACkground">@color/colOraccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNotitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
class PriMaryActionModeCallBACk : ActionMode.CallBACk {
var onActionItemClickListener: OnActionItemClickListener? = null
private var mode: ActionMode? = null
@menuRes private var menuResId: Int = 0
private var title: String? = null
private var subtitle: String? = null
override fun onCreateActionMode(mode: ActionMode,menu: Menu): Boolean {
this.mode = mode
mode.menuInflater.inflate(menuResId,menu)
mode.title = title
mode.subtitle = subtitle
return true
}
override fun onPrepareActionMode(mode: ActionMode,menu: Menu): Boolean {
return false
}
override fun onDestroyActionMode(mode: ActionModE) {
this.mode = null
}
override fun onActionItemClicked(mode: ActionMode,item: MenuItem): Boolean {
onActionItemClickListener?.onActionItemClick(item)
mode.finish()
return true
}
fun startActionMode(view: View,@menuRes menuResId: Int,title: String? = null,subtitle: String? = null) {
this.menuResId = menuResId
this.title = title
this.subtitle = subtitle
view.startActionMode(this)
}
fun finishActionMode() {
mode?.finish()
}
}
@requiresApi(Build.VERSION_CODEs.M)
class FloaTingActionModeCallBACk : ActionMode.CallBACk2() {
var onActionItemClickListener: OnActionItemClickListener? = null
private var mode: ActionMode? = null
@menuRes private var menuResId: Int = 0
private var contentLeft: Int = 0
private var contentTop: Int = 0
private var contentright: Int = 0
private var contentBottom: Int = 0
override fun onCreateActionMode(mode: ActionMode,menu)
return true
}
override fun onPrepareActionMode(mode: ActionMode,item: MenuItem): Boolean {
onActionItemClickListener?.onActionItemClick(item)
mode.finish()
return true
}
override fun onGetContentRect(mode: ActionMode,view: View,outRect: Rect) {
outRect.set(contentLeft,contentTop,contentright,contentBottom)
}
fun startActionMode(view: View,contentLeft: Int = 0,contentTop: Int = 0,contentright: Int = view.width,contentBottom: Int = view.height) {
this.menuResId = menuResId
this.contentLeft = contentLeft
this.contentTop = contentTop
this.contentright = contentright
this.contentBottom = contentBottom
view.startActionMode(this,ActionMode.TYPE_FLOATinG)
}
fun finishActionMode() {
mode?.finish()
}
}
interface OnActionItemClickListener {
fun onActionItemClick(item: MenuItem)
}
// Start priMary ActionMode
val priMaryActionModeCallBACk = PriMaryActionModeCallBACk()
priMaryActionModeCallBACk.startActionMode(view,R.menu.menu_actions,"title","Subtitle")
// Start floaTing ActionMode
if (Build.VERSION.SDK_INT >= Build.VERSION_CODEs.M) {
val floaTingActionModeCallBACk = FloaTingActionModeCallBACk()
floaTingActionModeCallBACk.startActionMode(view,x,y,width,height)
}
You can get description from here,正在通过一些修改在我的项目上工作.
以上是大佬教程为你收集整理的如何在Floating Action Mode中在Android 9上显示菜单项图标 全部内容,希望文章能够帮你解决如何在Floating Action Mode中在Android 9上显示菜单项图标 所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。