2015-03-25 92 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, 謝謝你反正你的答案。