2015-03-25 94 views
0

我很沮丧,每件事都设置正确,甚至在渲染(使用Android Studio)时会显示动作栏图标,但是当我在物理智能手机上运行它时(pocket neo 4.1.2)它只显示ic-launcher和标题什么是解决方案?Android ActionBar图标不显示

activity_main_actions.xml

`

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <!-- Search Widget --> 
    <item android:id="@+id/action_search" 
     android:icon="@drawable/ic_action_b" 
     android:title="@string/action_search" 
     app:showAsAction="ifRoom" 
     /> 
    <!-- Location Found --> 
    <item android:id="@+id/action_location_found" 
     android:icon="@drawable/ic_action_location_found" 
     android:title="@string/action_new" 
     app:showAsAction="ifRoom" /> 
</menu> 

`

main_activity.xml '

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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" 
    tools:context=".MainActivity"> 

</RelativeLayout> 

` MainActivity.java

`

public class MainActivity extends Activity { 

    private ActionBar actionBar; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_activity); 


     actionBar = getActionBar(); 

     // Hide the action bar title 


     actionBar.setIcon(R.mipmap.ic_launcher); 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main_actions, menu); 

     return super.onCreateOptionsMenu(menu); 
    } 


} 

`

+0

您正在以编程方式将它设置为ic_launcher您期望什么? actionBar.setIcon(R.mipmap.ic_launcher); – 2015-03-25 01:36:02

+0

我的意思是其他图标 – 2015-03-25 01:40:20

+0

它是ic_action_b和ic_action_location_found? – 2015-03-25 01:41:36

回答

0

从我在here您的手机分辨率检查确定是非常小(240×320)
如此,因为你正在使用app:showAsAction="ifRoom"如果有空间在它只会显示操作栏。
如果你想让它始终显示你需要将其更改为app:showAsAction="always"

希望这可以帮助您,如果您有关于我的回答其他任何问题随时问在注释中。

+0

刚试过,仍然不能正常工作 – 2015-03-25 01:55:57

0

根据我的经验,如果目标设备不是v21(棒棒糖),则应在定义showAsAction时使用android命名空间,而不是app命名空间。

如果您希望两者兼容,并且您的IDE正在抱怨android命名空间,请使用app命名空间进行新布局,并将其放入v21布局文件夹中。

+0

仍然不能正常工作 – 2015-03-25 13:57:44

-1

解决!

这是我的错误,我添加了支持:appcompact-v7与minsdk = 14, 谢谢你反正你的答案。