zoukankan      html  css  js  c++  java
  • Android界面编程--使用活动条(ActionBar)

    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

  • 相关阅读:
    RocketMQ——角色与术语详解
    大数据学习方向
    连接mysql数据库报错java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.
    exception is feign.RetryableException: Connection refused (Connection refused) executing GET http://......
    【BZOJ3261】最大异或和(可持久化Trie)
    【BZOJ4552】排序(线段树,二分)
    【CodeChef】LECOINS(同余最短路,背包DP)
    【BZOJ2118】墨墨的等式(同余最短路)
    【BZOJ5249】IIIDX(贪心,线段树)
    【gym102394L】LRU Algorithm(自然溢出哈希)
  • 原文地址:https://www.cnblogs.com/xiaochenztx/p/8507559.html
Copyright © 2011-2022 走看看