在动作栏Android Studio上移动徽标

时间:2016-02-06 20:23:36

标签: java android android-studio

我已将可绘制文件夹中的图像添加到我的操作栏中,现在想将其移到左后箭头旁边。有关如何在Android Studio中执行此操作的任何想法。感谢

我的代码就像休耕一样

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    getSupportActionBar().setLogo(R.drawable.mainlogo);

enter image description here

1 个答案:

答案 0 :(得分:1)

尝试使用工具栏,这是制作AppBars的新方法。它更容易定制和重复使用,以及其他优点。

Android's docs让它看起来比实际更难。他们使用工具栏但仍将其连接到AppBar API。如果你使用很多ActionBar实用程序方法,比如ActionBar.hide(),那么调用它是有意义的

setSupportActionBar(myToolbar);

但它实际上可以更容易。 Why you don't need to setSupportActionBar

根据上面的文章,如果我们不使用AppBar API,我们不需要自定义主题,onCreateOptionsMenu()或任何AppBar混乱。

以下是如何操作工具栏:

  1. 获取v7 appcompat

  2. 认为仍然需要让你的Activity扩展AppCompatActivity

  3. 添加以下代码:

  4. 在布局资源文件的顶部,当然是顶级布局:

    <android.support.v7.widget.Toolbar
       android:id="@+id/my_toolbar"
       android:layout_width="match_parent"
       android:layout_height="?attr/actionBarSize"
       android:background="?attr/colorPrimary"
       android:elevation="4dp"
       android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
    </android.support.v7.widget.Toolbar>
    

    在您的活动中:

    protected void onCreate(Bundle savedInstanceState) {
    
        ...
        //Get the toolbar
        Toolbar toolbar = ((Toolbar)findViewById(R.id.my_toolbar));
        //Set up the toolbar's navigation icon and behavior
        toolbar.setNavigationIcon(R.drawable.ic_close_white_24dp);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //whatever you want to happen on click
            }
        });
    }
    

    您可以选择执行以下操作:

    toolbar.inflateMenu(R.menu.save_menu);
    toolbar.setTitle("Hey");
    

    你想要自定义行为的地方。如果你想在工具栏中使用ImageView,你只需将它添加到布局资源中:

    <android.support.v7.widget.Toolbar
       android:id="@+id/my_toolbar"
       android:layout_width="match_parent"
       android:layout_height="?attr/actionBarSize"
       android:background="?attr/colorPrimary"
       android:elevation="4dp"
       android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/my_logo"/>
    </android.support.v7.widget.Toolbar>
    

    事实上,如果你想要一个带有自定义样式的标题,而不是试图找出工具栏样式而不是撞墙,只需在ImageView所在的地方添加一个TextView。您可以根据需要修改它,并将其作为标题!