標籤:顯示 text imp https options state cte actionbar was
ActionBar的使用
1.啟動ActionBar(預設狀態下是啟動的)
1.1 在Android設定檔(AndroidManifest.xml)中設定應用的主題為 ***.NoActionBar
1.2 在代碼中控制ActionBar的啟動
書上用getActionBar()寫的,但我試試的時候總是擷取不到,actionBar一直是空的
問題解決:https://stackoverflow.com/questions/6867076/getactionbar-returns-null(不同的activity要用不同的方式擷取???)
getSupportActionBar能成功擷取ActionBar;
public class MainActivity extends AppCompatActivity { ActionBar actionBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲得ActionBar actionBar = getSupportActionBar(); Log.v("z",getSupportActionBar()+""); } public void hideActionBar(View view) { actionBar.hide(); } public void showActionBar(View view) { actionBar.show(); }}
*******在布局頁面能直接在button中註冊onclick事件***********
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hideActionBar" android:onClick="hideActionBar"/>
2.使用ActionBar顯示菜單選項
2.1 app:showasaction 和 android:showasaction的區別:http://www.cnblogs.com/liaojie970/p/5718901.html
2.2 資源檔寫了,但不顯示在actionbar上面:
這個遇到了問題,想不明白,,,,
問題找到解決辦法了:http://blog.csdn.net/huwei0518/article/details/48834795
MenuItemCompat.setShowAsAction(menu.findItem(R.id.action),MenuItemCompat.SHOW_AS_ACTION_ALWAYS);(加了這麼一段代碼)
/** * 載入菜單 * * @param menu * @return */
@Override public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = new MenuInflater(this); //裝填R.menu.my_menu對應的菜單,並添加到menu中
inflater.inflate(R.menu.actionbar, menu);
MenuItemCompat.setShowAsAction(menu.findItem(R.id.action),MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
return super.onCreateOptionsMenu(menu);
}
overflow就是actionbar上面的三個點,點擊後會出現菜單
這個問題花了不少時間才找到解決辦法,但原理不是很懂,,,(出現這個問題的原因好像是V4和V7的問題,,,import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;)
代碼參考:https://www.aliyun.com/jiaocheng/71385.html
3
Android介面編程--使用活動條(ActionBar)