ActionBar not showing icons for items. This is my menu xml so far. It just shows the action overflow with stuff in the action overflow.
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
yourapp:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud) 我使用ActionBarActivity意图一个新的Activity但我不能在Activity中调用ActionBar方法
// requestWindowFeature(Window.FEATURE_ACTION_BAR);
// getActionBar().setTitle("123");
ActionBar actionBar =getActionBar();
//
actionBar.setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
将得到null
01-14 16:29:58.712 3405-3405/com.fragment.test E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.fragment.test, PID: 3405
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fragment.test/com.fragment.test.Ac1}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
at …Run Code Online (Sandbox Code Playgroud) android android-intent android-actionbar android-actionbaractivity

就像上面的Google Plus屏幕截图一样,我想在操作栏中显示一个圆形的头像图像.我该怎么办?
我正在尝试创建没有操作栏的启动画面.
首先在主要活动中创建启动画面,操作栏之前,当我创建启动画面时,操作栏进入启动画面,主要活动全屏.我搜索方法一样getwindow,getActionbar但我在使用这些方法的程序对我说不幸停止.那么我错过了什么?
如何在闪屏中避免使用aciton bar?
我的代码:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_item);
Thread th=new Thread(){
public void run(){
try {
sleep(4000);
Intent intent=new Intent(MainActivity.this,SplashScreen.class);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
finally{
finish();
}
}
};
th.start();
}
Run Code Online (Sandbox Code Playgroud)
表现:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SplashScreen"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.SPLASHSCREEN" />
<category android:name="android.intent.category.DEFAULT" …Run Code Online (Sandbox Code Playgroud) 我的应用程序使用ActionBarActivity和DrawerLayout等.我想将ActionBarDrawerToggle图标更改为自定义可绘制.
在我的代码中,我使用android.support.v7.widget.Toolbar作为SupportActionBar
这是我的代码:
toolbar.setNavigationIcon(R.drawable.lifeline_shield);
setSupportActionBar(toolbar);
ActionBar actionbar = getSupportActionBar();
actionbar.setDisplayHomeAsUpEnabled(true);
actionbar.setDisplayShowTitleEnabled(false);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.somestring1, R.string.somestring2) ....
Run Code Online (Sandbox Code Playgroud)
但我仍然看到汉堡图标,所以我有自己的图标打开抽屉.我怎么解决这个问题?不使用弃用的api
android android-icons android-actionbar android-navigation android-toolbar
每当服务器上的配色方案发生变化时,它也应该在应用程序上进行更改.到目前为止,我已经设法让动作栏改变它的颜色.唯一的问题是,当收到通知时,颜色会立即发生变化.有没有办法动画从旧颜色到新颜色的过渡?
谢谢!
从Android L开始,我们有一个Toolbar而不是它ActionBar虽然它的用法看起来是一样的.他们甚至恢复了Toolbar通过支持库的兼容性.
他们ActionBar用一个Toolbar?取代的原因是什么?
在setContentView()之前
LayoutInflater inflater = (LayoutInflater) getSupportActionBar() .getThemedContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View customActionBarView = inflater.inflate(R.layout.ab, null);
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayOptions( ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
actionBar.setCustomView(customActionBarView, new android.support.v7.app.ActionBar.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
Run Code Online (Sandbox Code Playgroud)
在ab.xml中

在我的应用程序中

int styles.xml
<!-- Base application theme. -->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
</style>
<style name="ATheme" parent="AppBaseTheme">
<item name="android:actionBarStyle">@style/AppTheme.ActionBar.a</item>
<item name="actionBarStyle">@style/AppTheme.ActionBar.a</item>>
<item name="android:icon">@android:color/transparent</item>
</style>
<style name="AppTheme.ActionBar.a" parent="Widget.AppCompat.Light.ActionBar">
<item name="android:height">50dp</item>
<item name="android:background">#d1d1d1</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,没有完全填充操作栏
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupViewPager();
}
private void setupViewPager() {
// TODO Auto-generated method stub
FragmentPagerItemAdapter adapter = new FragmentPagerItemAdapter(
getSupportFragmentManager(), FragmentPagerItems.with(this)
.add("Home", HomeFragment.class)
.add("Message", MessageFragment.class)
.add("My", MyFragment.class).create());
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(adapter);
SmartTabLayout viewPagerTab = (SmartTabLayout) findViewById(R.id.viewpagertab);
final LayoutInflater inflater = LayoutInflater.from(viewPagerTab.getContext());
final Resources res = viewPagerTab.getContext().getResources();
viewPagerTab.setCustomTabView(new SmartTabLayout.TabProvider() {
@Override
public View createTabView(ViewGroup container, int position,PagerAdapter adapter) {
ImageView icon = (ImageView) inflater.inflate(R.layout.mainactivity_tab, container, false);
switch (position) …Run Code Online (Sandbox Code Playgroud) 我搜索并发现其他同样的问题,但我仍然无法解决操作栏中未显示的菜单项问题.我将发布我的动作条形码,menu_main.xml和MainActivity.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/ColorPrimary"
android:minHeight="?attr/actionBarSize"
android:elevation="10dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PROJECT TIMELINE"
android:id="@+id/toolbar_title"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="@color/ColorPrimaryDark" />
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
这是来自menu_main.xml
<menu 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"
tools:context=".MainActivity">
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="@+id/search"
android:title="@string/Search"
android:icon="@drawable/ic_action"
app:showAsAction="ifRoom"
/>
</menu>
Run Code Online (Sandbox Code Playgroud)
我在MainActivity.java中写了这个
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)