在寻找一种在 ActionBar 中显示选项并仍然与 Honey 兼容的方法时,我遇到了兼容性库中的 MenuCompat.setShowAsAction() 方法(http://developer.android.com/reference/android/support/v4 /view/MenuCompat.html),但它已被弃用,我无法在库中找到替代品来做同样的事情。有任何想法吗?
提前致谢
我有一个包含两个活动的应用程序,有时,我需要切换活动,同时在刚刚恢复的活动的操作栏中打开搜索输入。一切正常,只是我无法让键盘出现。我的代码的相关部分如下(注意:true如果需要搜索输入,则布尔值 startsearch 设置为切换活动的结果):
public class MyActivity extends Activity {
private InputMethodManager imm;
public boolean startsearch;
private MenuItem DestinationTxt;
private SearchView mySearchView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// various initialisation, and then:
startsearch = false;
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.action_menu, menu);
DestinationTxt = menu.findItem(R.id.actionbar_search);
mySearchView = (SearchView)DestinationTxt.getActionView();
// more menu create stuff appears here
}
@Override
public void onResume() {
super.onResume();
if (startsearch) {
DestinationTxt.expandActionView();
imm.showSoftInput(mySearchView, …Run Code Online (Sandbox Code Playgroud) 有没有办法从应用程序中永久删除这两个 android 导航栏?

我需要使用程序兼容性V7中引入新的工具栏功能:21阅读SO跟帖这里和android的博客文章在这里。我从博客文章中精确地复制了工具栏片段到我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar <- Line 8
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
问题是我得到:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.blabla.PrefActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class <unknown>
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我删除这一行: android:minHeight="?attr/actionBarSize"
有用。所以问题不是因为项目依赖关系等等。看来我只能访问 ?attr 元素,如 actionBarSize 或 colorPrimary
不用说我已经添加了 AppCompat 依赖项。并且该活动是从 PreferenceActivity 继承的。这是我的毕业证书:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'
}
Run Code Online (Sandbox Code Playgroud)
在这里和这里人们随机报告解决问题。但是我的随机在过去两天没有工作。
编辑:
这是我的活动:
public class PrefActivity extends PreferenceActivity {
private Toolbar …Run Code Online (Sandbox Code Playgroud) DrawerLayout我的应用程序中有一个ActionBar. 打开菜单时,该图标不可见。再次关闭菜单后,该图标将重新出现。现在,它只是立即显示\消失。我想为图标添加淡入淡出动画。有什么办法可以达到这个效果吗?
此代码当前用于切换图标:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
if(!drawerOpened){
inflater.inflate(R.menu.chats_activity_action, menu);
} else {
actionBar.setDisplayUseLogoEnabled(false);
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这是在 XML 文件中定义图标的方式:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/menu_filter"
android:title="Add a user"
app:showAsAction="always"
android:icon="@drawable/plus_icon"/>
</menu>
Run Code Online (Sandbox Code Playgroud) animation android android-actionbar android-actionbar-compat
我正在使用工具栏项在我的应用程序中实现材料设计。在我的工具栏中,我添加了“imageview”和“textview”并替换了“textView”的标题文本
这是我的代码
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/logo_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/app"
android:layout_centerVertical="true"
android:scaleType="centerInside" />
<TextView
android:id="@+id/text_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:singleLine="true"
android:ellipsize="end"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="#fff"
android:layout_toRightOf="@+id/logo_image"
/>
</RelativeLayout>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
在 textview 上方,我必须设置所有认为的文本大小、颜色、文本样式,
android:singleLine="true"
android:ellipsize="end"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="#fff"
Run Code Online (Sandbox Code Playgroud)
但是我需要在这里设置默认的标题文本样式,怎么做?,请提供一些想法
android android-layout android-actionbar material-design android-toolbar
我想在 ActionBar 中创建一个带有文本和图标的按钮。类似于下面的屏幕截图。

我试过这个代码。但它不起作用。它只显示没有文字的图标。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/create"
android:title="@string/create"
android:icon="@drawable/ic_apply"
android:showAsAction="always|withText" />
</menu>
Run Code Online (Sandbox Code Playgroud) 我让一位朋友测试我的应用程序,但他注意到布局存在一些奇怪的问题。列表视图中的所有视图都将悬停在操作栏上。
问题是,我无法在我自己的设备或模拟器上重现这个,所以我假设它特定于某些版本的 Android?有谁知道这里的问题
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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="match_parent"
android:fitsSystemWindows="true"
tools:context="com.brainicism.summonertracker.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:src="@drawable/ic_add" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
content_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="0dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<ListView
android:id="@+id/trackingList"
android:layout_width = "match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
主要活动
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)
android android-appcompat android-layout android-view android-actionbar
这是我的menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:icon="@drawable/search_icon"
android:title="@string/action_search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always" />
<item
android:id="@+id/action_favorite"
android:icon="@drawable/favorite_icon"
android:title="@string/action_favorite"
app:showAsAction="always" />
<item
android:id="@+id/themes"
android:title="@string/overflow_menu_item"
app:showAsAction="never">
<menu>
<item
android:id="@+id/background1"
android:title="Red-PinkGradient"
/>
<item
android:id="@+id/background2"
android:title="Red-Gradient"
/>
<item
android:id="@+id/background3"
android:title="Green-Gradient"
/>
<item
android:id="@+id/background4"
android:title="Black-GreyGradient"
/>
</menu>
</item>
<item
android:title="@string/overflow_menu_item2"
android:id="@+id/settings"
/>
Run Code Online (Sandbox Code Playgroud)
这是我的styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="actionOverflowButtonStyle">@style/overFlow</item>
<item name="searchViewStyle">@style/CustomSearchViewStyle</item>
</style>
<style name="overFlow" parent="@style/Widget.AppCompat.Light.ActionButton.Overflow">
<item name="android:src">@drawable/ic_overflow_icon</item>
</style>
<style name="CustomSearchViewStyle" parent="Widget.AppCompat.SearchView">
<item name="queryBackground">@color/white</item>
<item name="searchIcon">@drawable/search_icon</item>
</style>
Run Code Online (Sandbox Code Playgroud)
如何更改搜索视图的图标颜色?我试图将我的项目中的图标设置为可绘制对象,这是一个白色的搜索图标,但我保持黑色。 …
通过在Android Manifest文件中将该活动的主题设置为No Action Bar,我在其中一个活动中使用了自定义工具栏。
<activity android:name=".ChatLogActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
android:windowSoftInputMode="adjustResize"
>
Run Code Online (Sandbox Code Playgroud)
但是现在休息时,在设计时,Android Studio中的所有活动都没有显示任何操作栏,这使整个设计过程变得繁琐。但是,在所有这些活动中,操作栏都会显示在手机中。我尝试执行“使缓存无效并重新启动”,但问题仍然存在。我不明白为什么会这样。
PS:我知道用户界面令人讨厌