- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
menu.xml中的drawable vector icon并没有出现在appBar中,有两个,一个是搜索icon,一个是filter icon。我不知道我哪里错了。这是我的 Activity fragment :
static String query;
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
Toolbar myToolbar;
SearchView searchView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
//Set custom AppBar
myToolbar = findViewById(R.id.search_toolbar);
//myToolbar.inflateMenu(R.menu.menu_search);
initToolBarMenuIcons();
setSupportActionBar(myToolbar);
myToolbar.setOnMenuItemClickListener(this);
setupViews();
//Check internet connection
new InternetCheck(internet -> {
//Display no internet Toast if there's no internet
if (!internet) {
Toast.makeText(this, "no internet", Toast.LENGTH_SHORT).show();
}
});
}
@MainThread
@SuppressLint("NewApi") //suppress warning, since using DrawableCompat to set tint
public void initToolBarMenuIcons() {
myToolbar.inflateMenu(R.menu.menu_search);
//Manually adding icon since it's a vector drawable and we can't currently inflate from XML into menuitems
Drawable wrappedFilterIcon = DrawableCompat
.wrap(Objects.requireNonNull(AppCompatResources
.getDrawable(getBaseContext(), R.drawable.ic_filter_list_white_24dp)));
Drawable wrappedSearchIcon = DrawableCompat
.wrap(Objects.requireNonNull(AppCompatResources
.getDrawable(getBaseContext(), R.drawable.ic_search_white_24dp)));
//Tint it too
DrawableCompat.setTint(wrappedFilterIcon, Color.WHITE);
DrawableCompat.setTint(wrappedSearchIcon, Color.WHITE);
//Set the tinted vector drawable to the item
myToolbar.getMenu().findItem(R.id.action_filter).setIcon(wrappedFilterIcon);
myToolbar.getMenu().findItem(R.id.action_search).setIcon(wrappedSearchIcon);
}
[snip...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_search, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
searchView = (SearchView) searchItem.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
onArticleSearch(null);
searchView.clearFocus();
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return super.onCreateOptionsMenu(menu);
}
这是指定项目和图标源的 menu.xml。我使用 app:srcCompat 作为图标路径。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_filter"
app:showAsAction="always"
app:srcCompat="@drawable/ic_filter_list_white_24dp"
tools:ignore="MenuTitle"
android:orderInCategory="2" />
<item android:id="@+id/action_search"
android:orderInCategory="1"
android:title="Search Article"
app:srcCompat="@drawable/ic_search_white_24dp"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView" />
我导入了以下库:实现“com.android.support:support-vector-drawable:27.1.1” 实现“com.android.support:animated-vector-drawable:27.1.1”
我在我的应用程序 Gradle 文件中设置了它:
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.realty.drake.newyorktimessearcher"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary true
}
请帮帮我
最佳答案
看来我不明白你的问题。尝试像这样将 drawable 设置为您的菜单:
<item
android:id="@+id/menuItem"
android:icon="@drawable/yourdrawable"
/>
对不起兄弟,下面的文字是关于在菜单中使用animateddrawable。
矢量动画文件实现Animatable接口(interface),启动动画需要请求Drawable,将其带入Animatable,调用start()方法。我在 onOptionsItemSelected 中这样做:
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
when (item?.itemId) {
..........
R.id.editNotification -> {
(item.icon as Animatable).start()
}
}
return super.onOptionsItemSelected(item)
}
对于 Java 使用:
((Animatable) item.getIcon()).start();
但是您可能遇到了我遇到过的问题:如何向后设置动画。我没有本地解决方案,但你可以这样做:1.创建带倒退动画的drawable2. 实现 AnimationCallback 并在动画结束时切换那些可绘制对象。例如:
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_edit_notification, menu)
animDrawable = AnimatedVectorDrawableCompat.create(this, R.drawable.avd_edit_to_close)!!
menu?.getItem(0)?.icon = animDrawable
return true
}
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
when (item?.itemId) {
..............................
R.id.editNotification -> {
animDrawable.registerAnimationCallback(object : Animatable2Compat.AnimationCallback() {
override fun onAnimationEnd(drawable: Drawable?) {
animDrawable = AnimatedVectorDrawableCompat.create(this@NotificationActivity, if (inEditMode) R.drawable.avd_edit_to_close else R.drawable.avd_close_to_edit)!!
inEditMode = !inEditMode
item.icon = animDrawable
}
})
animDrawable.start()
}
}
return super.onOptionsItemSelected(item)
}
其中:animDrawable - 是 AnimatedVectorDrawableCompat 的实例 inEditMode - 只是我的 bool 标志对不起,但现在我没有时间用 Java 编写它,但有问题可以自由提问
关于android - menu.xml 中定义的可绘制矢量图标未显示在 appBar 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51366374/
在 app_bar.dart 文件中提到,海拔控制应用栏下方阴影的大小,并且默认情况下,如果没有内容在 AppBar 下滚动,则不会绘制阴影。 这是我的代码: Scaffold( appBar:
我正在创建一个 GlobalPage/FrameHoster,其中将包含我的 AppBar,然后创建一个将托管我的所有应用程序页面的 Frame 控件。除了一些页面导航控件被应用栏隐藏之外,这一切都很
我正在尝试实现 flutter_tagging里面AppBar .我设法添加了标签 TextField里面AppBar并调整 AppBar使用 PreferredSize使用以下代码的小部件: ret
我的 AppBar 在屏幕上的图像后面或者我看不到它,有什么建议可以在顶部显示我的 AppBar 和 buttomNavigator 并且是半透明的吗? Widget build(BuildConte
我的应用栏上有两个图标,点击保存保存图标消失,批准图标会弹出它工作正常,但根据下图在大屏幕上通过应用栏图标剪切。这是我的代码 appBar: PreferredSize( preferre
我想在容器上的 DoubleTap 上动态隐藏和显示 App Bar,并在隐藏时使用一些动画,但此链接的解决方案不适用于我的项目:Flutter - How can I dynamically sho
自定义应用栏的屏幕截图: 我想制作一个像照片一样的自定义应用栏任何人都可以帮助我创建这个我已经搜索了很多但没有找到任何地方 最佳答案 我不认为它是一个圆形的appBar,而是它下面的一个圆形的容器。
嘿,我正在创建底部应用栏并向其添加 3,应用栏按钮,如下所示。一个使用内置图标,另外两个使用位图图标 带有位图图标的 AppBarButton 在设计 View 中正确显示,即包含在
自定义应用栏的屏幕截图: 我想制作一个像照片一样的自定义应用栏任何人都可以帮助我创建这个我已经搜索了很多但没有找到任何地方 最佳答案 我不认为它是一个圆形的appBar,而是它下面的一个圆形的容器。
嘿,我正在创建底部应用栏并向其添加 3,应用栏按钮,如下所示。一个使用内置图标,另外两个使用位图图标 带有位图图标的 AppBarButton 在设计 View 中正确显示,即包含在
代码:
我创建了一个 AppBar。 AppBar 始终保持在顶部,当它失去焦点时,返回到 AppBar 需要点击两次而不是一次。我相信第一次点击会激活表单,然后第二次点击我会收到鼠标点击事件(如预期的那样)
我制作了一个简单的 appBar,在屏幕顶部只有一个标签可以缩小桌面,但我无法让它显示为我的第二台显示器。我一直在四处寻找,但我发现的一切都是针对 WPF 的。这些很可能是我犯错的地方,但如果您需要查
当你想让你的应用扩展到全屏时(包括状态栏和应用栏),你必须这样做: var applicationView = Windows.UI.ViewManagement.ApplicationView.Ge
我写了一个应用程序桌面工具栏(又名 AppBar),它工作得很好,除了如果我终止进程,AppBar 代码永远没有机会通过发送 ABM_REMOVE 来清理。问题是这基本上搞砸了用户的桌面。 AppBa
我开始使用 React/Material-UI,也是 CSS 等的新手...我有一个带有 APPBar 的简单页面布局。不幸的是,此 AppBar 与本应位于其下方的元素重叠。 我找到了这个答案: A
我正在开发的 Windows 应用商店应用的主页上有两个 AppBar。一个在顶部用于导航,另一个在下方用于命令。 显然,我希望 AppBars 在单击新命令按钮后关闭。下面的代码可以工作,但看起来很
我的布局中有一个 AppBar 和一个水平线性布局(其中包括一个编辑文本和两个图像按钮)和其他内容。当用户向下滚动时,我想要 AppBar(实际上,Toolbar 隐藏。这是我尝试过的,appbar
我有一个应用栏,我想在其中显示标题,然后在它旁边有一个凸起的按钮,该按钮会展开以填充剩余的水平空间。我试过这个的变体: AppBar( title: Row( children: [
我正在尝试为我的所有屏幕使用相同的 Appbar,但我不想多次添加相同的代码,因此我考虑创建具有默认 Appbar 的类 MyAppbar,以便我可以使用它在我的屏幕上没有重复相同的代码,但我不知道我
我是一名优秀的程序员,十分优秀!