精华内容
下载资源
问答
  • Toolbar自定义布局

    2018-01-16 19:01:00
    Toolbar如何使用想必大家清楚地很,实际开发中标题栏的样式各色各样,因此其基本样式便不能满足我们的需求,这就需要我们自定义布局。打开ToolBar源码我们发现它继承ViewGroup,这就表示我们可以把它当做一个存放控件...

    Toolbar如何使用想必大家清楚地很,实际开发中标题栏的样式各色各样,因此其基本样式便不能满足我们的需求,这就需要我们自定义布局。打开ToolBar源码我们发现它继承ViewGroup,这就表示我们可以把它当做一个存放控件的容器。

     <android.support.v7.widget.Toolbar
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@color/colorPrimary"
                android:gravity="center">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="标题"
                    android:textSize="16sp"
                    android:textColor="@color/white"
                />
            </LinearLayout>
        </android.support.v7.widget.Toolbar>

    结果:左边出现一片空白 
    这里写图片描述 
    查找源码发现:

       final int contentInsetStart =
                    a.getDimensionPixelOffset(R.styleable.Toolbar_contentInsetStart,
                            RtlSpacingHelper.UNDEFINED);
            final int contentInsetEnd =
                    a.getDimensionPixelOffset(R.styleable.Toolbar_contentInsetEnd,
                            RtlSpacingHelper.UNDEFINED);
            final int contentInsetLeft =
                    a.getDimensionPixelSize(R.styleable.Toolbar_contentInsetLeft, 0);
            final int contentInsetRight =
                    a.getDimensionPixelSize(R.styleable.Toolbar_contentInsetRight, 0);
    
            mContentInsets.setAbsolute(contentInsetLeft, contentInsetRight);
    
            if (contentInsetStart != RtlSpacingHelper.UNDEFINED ||
                    contentInsetEnd != RtlSpacingHelper.UNDEFINED) {
                mContentInsets.setRelative(contentInsetStart, contentInsetEnd);
            }

    是这个contentInsetStart导致了左边的留白,我们只要将左边距置为0即可。

       <android.support.v7.widget.Toolbar
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:contentInsetLeft="0dp"
            app:contentInsetStart="0dp">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@color/colorPrimary"
                android:gravity="center">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="标题"
                    android:textSize="16sp"
                    android:textColor="@color/white"
                />
            </LinearLayout>
        </android.support.v7.widget.Toolbar>

    这里写图片描述 
    这样Toobar的样式就可以任意由我们修改了

    展开全文
  • android一种简单的toolbar布局实例
  • Adnroid Toolbar 自定义Toolbar布局

    万次阅读 2016-01-27 21:51:08
    默认调用系统的toolbar,分以下几个步骤: 在布局文件中添加toolbar 描述toolbar中menu的布局 在代码中调用 主布局文件: xmlns:tools="http://schemas.android.com/tools"

    默认调用系统的toolbar,分以下几个步骤:

    1. 在布局文件中添加toolbar
    2. 描述toolbar中menu的布局
    3. 在代码中调用

    主布局文件:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/white">
    
        <android.support.v7.widget.Toolbar
            android:layout_height="?attr/actionBarSize"
            android:layout_width="match_parent"
            android:id="@+id/id_tool_bar"
            android:background="?attr/colorPrimary"
    
            >
        </android.support.v7.widget.Toolbar>
    
    </RelativeLayout>

    menu布局:(android:orderInCategory表示的是展示的优先级)

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        tools:context=".MainActivity">
    
        <item
            android:id="@+id/action_edit"
            android:orderInCategory="80"
            android:title="edit"
            android:icon="@drawable/ab_edit"
            app:showAsAction="ifRoom" />
        <item
            android:id="@+id/action_share"
            android:orderInCategory="90"
            android:title="share"
            android:icon="@drawable/ab_share"
            app:showAsAction="ifRoom" />
    
        <item
            android:id="@+id/action_settings"
            android:orderInCategory="100"
            android:title="hh"
            app:showAsAction="never" />
    </menu>
    

    在代码中调用:

    package com.example.guo.test_toolbar;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toolbar toolbar = (Toolbar)findViewById(R.id.id_toolbar);
    
            // App Logo
            //toolbar.setLogo(R.mipmap.ic_launcher);
            //toolbar.setTitle("HHH");
            // Sub Title
           // toolbar.setSubtitle("hhh");
            setSupportActionBar(toolbar);
    
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
    
            getMenuInflater().inflate(R.menu.menu, menu);
            return true;
        }
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            if (item.getItemId() == android.R.id.action_share){
                finish();
                return true ;
            }
            return super.onOptionsItemSelected(item);
    }
    

    以上代码运行结果如下所示:

    自定义toolbar布局:

    1. 在布局文件中加入自己要定义的布局
    2. 在代码中设置

    在布局文件中加入自定义的布局:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
    
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
    
        <android.support.v7.widget.Toolbar
            android:id="@+id/id_toolbar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:fitsSystemWindows="true"
            app:navigationIcon="@mipmap/ic_launcher"
            app:title=" ">
    
            <TextView
                android:id="@+id/toolbar_num"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:layout_marginLeft="16dp"
                android:text="num"
                android:textColor="#BFBFBF"
                android:textSize="16dp" />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@drawable/ab_edit"/>
            <TextView
                android:id="@+id/toolbar__"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:layout_marginLeft="16dp"
                android:text="num"
                android:textColor="#BFBFBF"
                android:textSize="16dp" />
    
        </android.support.v7.widget.Toolbar>
    
    </RelativeLayout>

    在代码中调用:

    package com.example.guo.test_toolbar;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toolbar toolbar = (Toolbar)findViewById(R.id.id_toolbar);
            setSupportActionBar(toolbar);
            ImageView mImage=(ImageView)findViewById(R.id.mimage);
            mImage.setOnClickListener(new View.OnClickListener() {
                @Override
                    public void onClick(View v) {                              
                        Toast.makeText(MainActivity.this,"hello",Toast.LENGTH_LONG).show();
                }
            });
        }
    }

    以上代码运行如下所示:
    这里写图片描述

    展开全文
  • Toolbar加上app:contentInsetStart”="0dp"(左侧)或者“app:contentInsetEnd”="0dp"(右侧) <android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="?an...

    解决方法:

    给Toolbar加上app:contentInsetStart”="0dp"(左侧)或者“app:contentInsetEnd”="0dp"(右侧)

    <android.support.v7.widget.Toolbar
            android:layout_width="match_parent"
            android:layout_height="?android:actionBarSize"
            app:contentInsetStart="0dp"
            app:contentInsetEnd="0dp"
            app:contentInsetLeft="0dp"
            app:contentInsetRight="0dp">
     
            <!-- 自定义的布局-->
            <View
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@android:color/holo_green_dark"/>
        </android.support.v7.widget.Toolbar>

    注意:

    我们这里用的是v7包下的Toolbar,所以要使用自定义的属性。如果你使用的是系统的Toolbar,则使用android:开头的属性才会生效。

     

    或者通过自定义style去全局设置

    此文通过学习博客: https://blog.csdn.net/afei__/article/details/51476096

    做的笔记

    展开全文
  • Toolbar 自定义布局去除左右两边间距 在工作中遇到了toolbar 嵌套布局发现左右边距不一样大 ,所以发现了并加以修改 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width=...

    Toolbar 自定义布局去除左右两边间距

    在工作中遇到了toolbar 嵌套布局发现左右边距不一样大 ,所以发现了并加以修改

    <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@android:color/holo_blue_bright">
    
            <View
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@android:color/holo_red_dark" />
    
        </android.support.v7.widget.Toolbar>
    

    经过查阅

    app:contentInsetStart=”0dp”
    
    

    只不过是间距变窄了一些。经过测试,发现还要设置 toolbar 的 paddingLeft 和 paddingRight 值为 0,当然,直接设置 padding 为 0 也是可以的。加上之后终于没有间距了:

    如果在代码里设置了显示返回箭头,即

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    

    则需要给布局添加属性设置:

    app:contentInsetStartWithNavigation=”0dp”
    

    可以看到,返回箭头占的位置变窄了。
    最后,完整布局是这样的:

    <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@android:color/holo_blue_bright"
            android:padding="0dp"
            app:contentInsetStart="0dp"
            app:contentInsetStartWithNavigation="0dp">
    
            <View
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@android:color/holo_red_dark" />
    
        </android.support.v7.widget.Toolbar>
    

    clone:https://blog.csdn.net/musiclife123/article/details/80417825?utm_source=blogxgwz1

    展开全文
  • 这就是核心语句,这样就把我们写好的自定义布局添加到了toolbar中,其他的都是一些控制逻辑,也是很简单的。这就完成了toolbar自定义布局了。 实例下载   转载于:...
  • Toolbar 自定义布局去除左右两边间距

    千次阅读 2018-05-23 11:42:15
    v7 支持包中的 Toolbar,既可以直接代替 actionBar 使用,也可以嵌套布局自定义actionBar 样式,但是在嵌套布局自定义样式的时候,左右两边总会有一定的间距。直接在 toolbar 中添加布局: &amp;lt;android....
  • 看到很多的博主写关于ToolBar标题居中的问题,不过真正的实现ToolBar的标题居中的不是很多,对此,自己测试了一下,设置了ToolBar的标题居中显示,可以自定义,不为别的,只想大家可以走捷径,节约时间,快速实现: ...
  • ToolBar自定义布局

    千次阅读 2017-04-04 17:26:00
    自定义ToolBar
  • About ToolbarToolbar是一个官方ToolBar的扩展工具类,省去了对不同版本适配的复杂方案,它可以帮助你轻松实现NavigationBar和StatusBar的样式管理,最最重要的是它的使用方式及其接近原生,大家快来试用吧!...
  • <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/base_toolbar" android:layout_width="match_parent" android:layout_height="46dip" android:...
  • 特殊情况要求menu是一个可以动态控制的item,可以动态更新,布局也不止是一张图片一个string那么简单,如下图中红色框中的menu item所示,购物车的icon上悬浮数量,数量动态变化除此之外还要求可以逻辑处理可以复用...
  • 自定义toolbar布局时,如果内部使用的布局继承自ViewGroup(比如LinearLayout、RelativeLayout等),则会在左侧出现一块空白,导致整个toolabr布局右移。一行 代码搞定右移的问题app:contentInsetStart="0dp"代码...
  • 其实我们知道是改变Toolbar(自定义布局)透明度,而且是更具滑动控件滑动的距离,所以问题 来了透明度是0-1,我们猜想可以获取滑动的高度,如何将滑动高度和透明度联系在一起呢?我们 可以设置根据屏...
  • 自定义Toolbar,实现方式如下: 1.布局文件,在activity_main.xml 文件中写入Toolbar <?xml version=1.0 encoding=utf-8?> <android.support.constraint.ConstraintLayout xmlns:android=...
  • Android5.0出现了一个可以代替ActionBar的控件ToolBar,使用更加灵活,一般我们使用ToolBar来和DrawerLayout配合使用,官方提供了一个开关类ActionBarDrawerToggle,来实现ToolBar和DrawerLayout的关联,但是 有时...
  • ToolBar自定义样式

    千次阅读 2015-09-24 11:16:42
    Marterial Design出来也有一段时间了,为了紧跟Google的设计规范,决定在项目中使用Toolbar。使用了一段时间之后,发现很多时候原始的Toolbar并不能满足项目的要求。为了适应项目多样化的需求,对Toolbar进行了深入...
  • 这是自定义Toolbar布局的一个实例,使用了SegmentedGroup自定控件
  • Android中的toolbar自定义,通过自定义控件类的方法,并合理使用自定义类必须重写的三个构造函数
  • 自定义Toolbar先上效果图吧直接上代码Activity代码 本人所有博客均是记录自己的学习和爬坑的过程,顺便分享一些好用的东西给同学,没有任何商用行为,若有侵权,请及时联系本人1521976977@qq.com。如果对你有帮助的...
  • 自定义ToolBar的使用

    2021-03-06 18:13:16
    自定义ToolBar的使用 源码地址:https://github.com/Bacsonlx/Android/CNiaoShop/tree/master/CNiaoShop_02 代码中:MainActivity演示的是自定义ToolBar的使用,TestActivity演示的是原生ToolBar的使用。 演示效果:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,927
精华内容 4,770
关键字:

toolbar自定义布局