android 突出菜单_android 底部菜单中间突出按钮 - CSDN
  • 国际惯例,首先甩手一张效果图 这个效果在我项目中没有用到,但是看...android:clipChildren="false" 这个属性的大概意思:父控件不限制子类的的大小 我的实现方法就一个布局 xml version="1.0" encoding=

    国际惯例,首先甩手一张效果图





    这个效果在我项目中没有用到,但是看了基友做的一个app有这个效果,感觉挺有趣。

    就自己实现了一个玩了,其实起来非常简单,我不像盆友一样自定义一个底部,我是直接写了一个布局


    首先了解一个属性

    android:clipChildren="false"
    这个属性的大概意思:父控件不限制子类的的大小


    我的实现方法就一个布局

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipChildren="false">
        <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#ccc"
        android:layout_above="@+id/ll_bottom"
        />
        <LinearLayout
            android:clipChildren="false"
            android:id="@+id/ll_bottom"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:orientation="horizontal"
            android:layout_alignParentBottom="true"
            android:layout_alignParentStart="true">
            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_gravity="bottom"
                android:layout_weight="1">
                <ImageView
                    android:id="@+id/iv1"
                    android:layout_width="wrap_content"
                    android:layout_height="30dp"
                    android:layout_centerInParent="true"
                    android:src="@mipmap/head_one" />
    
                <TextView
                    android:textSize="10sp"
                    android:layout_centerInParent="true"
                    android:text="文本"
                    android:layout_width="wrap_content"
                    android:layout_height="18dp"
                    android:layout_below="@+id/iv1"/>
    
            </RelativeLayout>
    
            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_gravity="bottom"
                android:layout_weight="1">
                <ImageView
                    android:id="@+id/iv2"
                    android:layout_width="wrap_content"
                    android:layout_height="30dp"
                    android:layout_centerInParent="true"
                    android:src="@mipmap/head_one" />
                <TextView
                    android:textSize="10sp"
                    android:layout_centerInParent="true"
                    android:text="文本"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/iv2"/>
    
            </RelativeLayout>
    
            <RelativeLayout
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="bottom"
                android:layout_marginBottom="8dp">
    
                <ImageView
                    android:id="@+id/dd5"
                    android:layout_width="90dp"
                    android:layout_height="70dp"
                    android:layout_centerInParent="true"
                    android:src="@mipmap/circle" />
                <TextView
                    android:textSize="10sp"
                    android:layout_centerInParent="true"
                    android:text="文本"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/dd5"/>
    
            </RelativeLayout>
    
            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_gravity="bottom"
                android:layout_weight="1">
                <ImageView
                    android:id="@+id/iv3"
                    android:layout_width="wrap_content"
                    android:layout_height="30dp"
                    android:src="@mipmap/head_one"
                    android:layout_centerVertical="true"
                    android:layout_centerHorizontal="true" />
                <TextView
                    android:textSize="10sp"
                    android:layout_centerInParent="true"
                    android:text="文本"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/iv3"/>
    
            </RelativeLayout>
    
            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_gravity="bottom"
                android:layout_weight="1">
                <ImageView
                    android:id="@+id/iv4"
                    android:layout_width="wrap_content"
                    android:layout_height="30dp"
                    android:layout_centerInParent="true"
                    android:src="@mipmap/head_one" />
                <TextView
                    android:textSize="10sp"
                    android:layout_centerInParent="true"
                    android:text="文本"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/iv4"/>
    
            </RelativeLayout>
    
        </LinearLayout>
    
    </RelativeLayout>


    代码中用到的两张图片








    展开全文
  • 先看图: 下面看代码代码组成部分Activity+Fragment的实现方式,考虑到可能加载数据过多导致第一次比较卡的情况,代码实现以默认初始化加载前两个Fragment的数据,以后逐次添加。首先创建简单框架,这样能培养OOP...

    先看图:
    这里写图片描述

    下面看代码代码组成部分Activity+Fragment的实现方式,考虑到可能加载数据过多导致第一次比较卡的情况,代码实现以默认初始化加载前两个Fragment的数据,以后逐次添加。

    首先创建简单框架,这样能培养OOP(面向对象编程)的思维过程,为了长远打算这都是值得的。
    创建基类BaseActivity 继承FragmentActivity

    public class BaseActivity extends FragmentActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    //        TODO 可以在这里初始化一些东西
    //  TODO 我的项目里初始化诸如ButterKnife和toolbar之类的东西
        }
    //一些子类都有可能用到的方法,等等……
        public void showMessage(String text){
            Toast.makeText(this,text,Toast.LENGTH_SHORT).show();
        }
    
        protected void showDialog(){
    
        }
        protected void dismissDialog(){
    
        }
    }

    MainActivity 继承BaseActivity

    public class MainActivity extends BaseActivity implements View.OnClickListener {
    
        private List<Fragment> fragments;
        private MovieFragment movieFragment;
        private TvFragment tvFragment;
        private VarietyFragment varietyFragment;
        private CartoonFragment cartoonFragment;
        private List<TextView> views;
        private TextView movie;
        private TextView tv;
        private TextView variety;
        private TextView cartoon;
    //    底部中间凸起view
        private ImageView menuIv;
    //    当前选中的views的下标
        private int currentIndex = 0;
    //    旧的views下标
        private int oldIndex = 0;
        private boolean isMenuSelect = false;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main_activity);
            if (savedInstanceState == null) {
                initFragments();
                initViews();
            }
        }
    
        /**
         * 初始化所用到的view;
         */
        private void initViews() {
            movie = (TextView) findViewById(R.id.movie);
            tv = (TextView) findViewById(R.id.tv);
            variety = (TextView) findViewById(R.id.variety);
            cartoon = (TextView) findViewById(R.id.cartoon);
    
            movie.setOnClickListener(this);
            tv.setOnClickListener(this);
            variety.setOnClickListener(this);
            cartoon.setOnClickListener(this);
    //      默认第一个为选中状态
            movie.setSelected(true);
    
            views = new ArrayList<>();
            views.add(movie);
            views.add(tv);
            views.add(variety);
            views.add(cartoon);
            menuIv = (ImageView) findViewById(R.id.menu_iv);
            //底部中间凸起view点击
            menuIv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    
                    view.setSelected(isMenuSelect=(isMenuSelect==true?false:true));
                    //父类的show方法
                    showMessage("on click menuIv!");
                }
            });
        }
    
        /**
         * 初始化用到的Fragment
         */
        private void initFragments() {
            movieFragment = new MovieFragment();
            tvFragment = new TvFragment();
            varietyFragment = new VarietyFragment();
            cartoonFragment = new CartoonFragment();
    
            fragments = new ArrayList<>();
            fragments.add(movieFragment);
            fragments.add(tvFragment);
            fragments.add(varietyFragment);
            fragments.add(cartoonFragment);
    //        默认加载前两个Fragment,其中第一个展示,第二个隐藏
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.content,movieFragment)
                    .add(R.id.content,tvFragment)
                    .hide(tvFragment)
                    .show(movieFragment)
                    .commit();
    
        }
    
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.movie:
                    currentIndex = 0;
                    break;
                case R.id.tv:
                    currentIndex = 1;
                    break;
                case R.id.variety:
                    currentIndex = 2;
                    break;
                case R.id.cartoon:
                    currentIndex = 3;
                    break;
            }
    //        规避策略将凸起的view还原
            menuIv.setSelected(false);
            isMenuSelect = false;
    
            showCurrentFragment(currentIndex);
        }
    
        /**
         * 展示当前选中的Fragment
         * @param currentIndex
         */
        private void showCurrentFragment(int currentIndex) {
            if (currentIndex != oldIndex){
                views.get(oldIndex).setSelected(false);
                views.get(currentIndex).setSelected(true);
                FragmentTransaction ft = getSupportFragmentManager()
                                        .beginTransaction();
                ft.hide(fragments.get(oldIndex));
                if (!fragments.get(currentIndex).isAdded()){
                    ft.add(R.id.content,fragments.get(currentIndex));
                }
                ft.show(fragments.get(currentIndex)).commit();
                oldIndex = currentIndex;
            }
        }
    }

    main_activity的布局:

    <?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="com.example.bar.mybar.MainActivity">
        <RelativeLayout
                android:id="@+id/content"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginBottom="48dp"/>
        <ImageView
                android:id="@+id/menu_iv"
                android:layout_width="100dp"
                android:layout_height="66dp"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:background="@drawable/bg_menu"
                android:src="@drawable/selector_menu"
                android:scaleType="centerInside"/>
    
       <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:weightSum="2"
           android:orientation="horizontal"
           android:layout_alignParentBottom="true"
           android:background="@drawable/bg_bottom"
           android:paddingTop="2dp"
           android:paddingBottom="2dp"
           android:layout_toLeftOf="@id/menu_iv">
           <TextView
               android:id="@+id/movie"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:drawablePadding="2dp"
               android:drawableTop="@drawable/selector_movie"
               android:text="电影"
               android:textColor="@android:color/white"
               android:selectAllOnFocus="true"
               android:gravity="center"
               android:textSize="12dp"/>
           <TextView
               android:id="@+id/tv"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:drawablePadding="2dp"
               android:drawableTop="@drawable/selector_tv"
               android:text="电视剧"
               android:textColor="@android:color/white"
               android:gravity="center"
               android:textSize="12dp"/>
    
       </LinearLayout>
    
        <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:weightSum="2"
           android:orientation="horizontal"
           android:layout_alignParentBottom="true"
           android:background="@drawable/bg_bottom"
           android:layout_toRightOf="@id/menu_iv"
           android:paddingTop="2dp"
           android:paddingBottom="2dp">
    
           <TextView
               android:id="@+id/variety"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:drawablePadding="2dp"
               android:drawableTop="@drawable/selector_variety"
               android:text="综艺"
               android:textColor="@android:color/white"
               android:gravity="center"
               android:textSize="12dp"/>
           <TextView
               android:id="@+id/cartoon"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:drawablePadding="2dp"
               android:drawableTop="@drawable/selector_cartoon"
               android:text="动漫"
               android:textColor="@android:color/white"
               android:gravity="center"
               android:textSize="12dp"/>
       </LinearLayout>
    </RelativeLayout>

    其中电影view用到的drawable为selector_movie.xml:

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:state_selected="true" android:drawable="@android:drawable/ic_menu_crop"></item>
        <item android:drawable="@android:drawable/ic_menu_edit"></item>
    </selector>

    其中电视剧view用到的drawable为selector_tv.xml:

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:state_selected="true" android:drawable="@android:drawable/ic_media_pause"></item>
        <item android:drawable="@android:drawable/ic_media_play"></item>
    </selector>

    其中综艺view用到的drawable为selector_variety.xml:

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:state_selected="true" android:drawable="@android:drawable/ic_media_previous"></item>
        <item android:drawable="@android:drawable/ic_media_next"></item>
    </selector>

    其中动漫view用到的drawable为selector_cartoon.xml:

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:state_selected="true" android:drawable="@android:drawable/ic_menu_close_clear_cancel"></item>
        <item android:drawable="@android:drawable/ic_menu_compass"></item>
    </selector>

    创建MovieFragment继承v4包下的Fragment,如果有需要你也可以创建基类Fragment处理一些事情

    public class MovieFragment extends Fragment {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    //  每个Fragment里都只有一个简单的view用于演示界面
            TextView textView = new TextView(container.getContext());
            textView.setText("movie");
            return textView;
        }
    }

    创建TvFragment、VarietyFragment、CartoonFragment与MovieFragment一样的代码
    总结:通过这一篇可以简单了解Fragment的使用,以及界面中底部bar的中间凸起实现方式

    其中demo使用的是mi3c测试,其他机子布局可能有所不同

    android底部bar中间凸起的实现 DEMO:

    展开全文
  • 主要是使用了clipChildren属性,设置子控件是否可以超出父控件范围显示,默认true(不可以)、false(可以),此属性一般用在爷爷级控件上效果比较明显,例如上面效果 layout_gravity控制超出的内容在哪块显示 ...

    小知识:
    Freeline( Android平台上的秒级编译方案) 阿里巴巴出品,类似Instant Run功能;用了下确实比较爽而且免费推荐大家使用,以下为官方详细介绍
    使用文档:https://www.freelinebuild.com/docs/
    原理说明:https://yq.aliyun.com/articles/59122?spm=5176.100240.searchblog.56.Sqd0hT

    底部导航栏按钮突出,先上效果图
    这里写图片描述

    之前项目做法:RelativeLayout+RadioGroup+ImageView/TextView

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/radiogroup"
            android:background="@color/yellow" />
    
    
        <RadioGroup
            android:id="@+id/radiogroup"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_alignParentBottom="true"
            android:background="@color/white"
            android:orientation="horizontal">
    
            <RadioButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="首页" />
    
            <RadioButton
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center" />
            <RadioButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="我的" />
    
        </RadioGroup>
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="60dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_gravity="center_horizontal"
            android:background="@mipmap/index_investbtn_bg"
            android:button="@null"
            android:gravity="center"
            android:text="发现" />
    </RelativeLayout>

    现在做法:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        **android:clipChildren="false"**
        android:orientation="vertical">
    
        <View
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@color/yellow" />
    
        <RadioGroup
            android:id="@+id/radiogroup"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:background="@color/white"
            android:orientation="horizontal">
    
            <RadioButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="首页" />
    
            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="60dp"
                android:layout_gravity="bottom"
                android:layout_weight="1">
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_centerHorizontal="true"
                    android:background="@mipmap/index_investbtn_bg"
                    android:gravity="center"
                    android:text="发现" />
            </RelativeLayout>
    
            <RadioButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="我的" />
    
        </RadioGroup>
    
    </LinearLayout>

    主要是使用了clipChildren属性,设置子控件是否可以超出父控件范围显示,默认true(不可以)、false(可以),此属性一般用在爷爷级控件上效果比较明显,例如上面效果
    layout_gravity控制超出的内容在哪块显示

    Google对clipChildren属性的原文描述:
    这里写图片描述

    展开全文
  • 中间突出的底部导航栏,根据点击的具体Tab显示不同的内容

    ||版权声明:本文为博主原创文章,未经博主允许不得转载。

    目前很多应用都加入了底部导航栏的功能,根据点击的具体Tab显示不同的内容,前段时间,本人在学习实现这个功能的时候遇到了点问题,发现我要实现的底部导航是以下这种中间部件突出的复杂布局(当时感觉算复杂啦)。
    

    为了实现这个布局,博主尝试了各种布局的嵌套,修正,仍然无法解决中间部件与其他控件的冲突问题,无法实现图中效果,于是网上拜读了各位大牛的相关文章,发现或使用已过时的TabHost或是更加复杂的布局,于是各取所长,这里采用radiobutton+frameLayout实现,具体如下:

    图片
    res/layout下custom_tab.xml

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_gravity="bottom"
        android:background="#ECEDEE" >
    
    
        <RadioGroup
            android:id="@+id/RadioG_Bottem"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="2dp"
            android:background="#fff"
            android:orientation="horizontal"
            android:paddingTop="5dp" >
    
    
            <RadioButton
                android:id="@+id/tab_same"
                style="@style/main_bottom_tab_style"
                android:drawablePadding="-18.0dip"
                android:drawableTop="@drawable/tab_btn_tongren" />
    
    
            <RadioButton
                android:id="@+id/tab_cos"
                style="@style/main_bottom_tab_style"
                android:drawablePadding="-18.0dip"
                android:drawableTop="@drawable/tab_btn_cos" />
    
    
            <RadioButton
                android:id="@+id/tab_home_bg"
                style="@style/main_bottom_tab_style"
               android:layout_height="match_parent"
                android:checked="true"
                 />
    
    
            <RadioButton
                android:id="@+id/tab_photo"
                style="@style/main_bottom_tab_style"
                android:drawablePadding="-18.0dip"
                android:drawableTop="@drawable/tab_btn_photo" />
    
    
            <RadioButton
                android:id="@+id/tab_cv"
                style="@style/main_bottom_tab_style"
                android:drawablePadding="-18.0dip"
                android:drawableTop="@drawable/tab_btn_cv" />
        </RadioGroup>
    
    
    </FrameLayout>

    res/values/style radiobutton所对应的style

    <style name="base_tab_style">
            <item name="android:gravity">center</item>
            <item name="android:layout_width">0.0dip</item>
            <item name="android:layout_height">fill_parent</item>
            <item name="android:button">@null</item>
            <item name="android:layout_weight">1.0</item>
        </style>
        <style name="main_bottom_tab_style" parent="@style/base_tab_style">
            <item name="android:layout_gravity">center</item>
            <item name="android:background">@null</item>
            <item name="android:layout_height">wrap_content</item>
        </style>

    res/layout 下activity_main.xml中嵌套custom_tab

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <include
            android:id="@+id/tab"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            layout="@layout/custom_tab" />
    
        <FrameLayout
            android:id="@+id/FrameAct_FragmentGroup"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@id/tab"
             >
        </FrameLayout>
    
        <FrameLayout
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true" >
    
            <ImageView
                android:id="@+id/Iv_home_bg"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="bottom"
                android:scaleType="fitXY"
                android:src="@drawable/home_sel" />
        </FrameLayout>
    
    </RelativeLayout>

    其中@id/FrameAct_FragmentGroup是用于之后填充多个具体fragment要使用的
    下面所加framelayout 中imageview即为导航栏布局中间突出部件。同样如上面radiobutton一样所有控件均使用了背景选择器,以使得相应控件被点击之后切换不同状态。

    <?xml version="1.0" encoding="utf-8"?>
    <selector
      xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_checked="true" android:drawable="@drawable/icon_cos_sel" />
        <item android:state_pressed="true" android:drawable="@drawable/icon_cos_sel" />
        <item android:state_checked="false" android:state_pressed="false" android:drawable="@drawable/icon_cos" />
    </selector>

    切换后

    同时点击之后切换相应fragment。

    不足之处欢迎大家指正。
    以上除drawable下原始图片资源外均属博主原创,转载请知会博主并注明出处,谢谢!

    展开全文
  • 看图,代码不是很复杂。 Github:https://github.com/1023459494/EasyApp
  • android(6) 扇形菜单实现,android扇形 一.扇形菜单的实现:  借鉴了大神们的源码,那我们来看一下扇形菜单是怎么实现的: 效果图:     主界面布局: <RelativeLayout xmlns:android=...
  • Android底部导航凸起菜单,利用的是FrameLayout实现的,效果和RadioGroup一样,同样有选中高亮的效果
  • 自定义View之实现流行的底部菜单栏中间突起:高仿“咸鱼APP”的底部菜单。一、好奇心在作怪。 今天纳闷地看了看咸鱼,看见其底部的菜单栏效果还不错,中间那个按钮是凸起来的!再看看我撸的界面: 2、何谓重要的属性...
  • android实现从底部滑出的半圆形菜单
  • Android 实现底部导航中间菜单凸起效果,不满意不要钱,哈哈 ~
  • 最近公司提出新的UI修改方案,就是下首页底部tab中间一个tab图案向上突出一部分,如图demo所示: 因为原来的代码底部导航栏使用的是:LinearLayout + ImageView + TextView 组合,所以:在这里用到了一个及其重要...
  • 实现代码 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" and
  • Android自定义侧拉菜单-做一个为自己定制的侧拉控件最近在项目开发上有一个侧拉菜单的需求,之前想到的会是android官方提供的DrawerLayout,DrawerLayout 为android 2.3 及以上系统版本提供侧拉的功能实现,但在项目...
  • android圆形旋转菜单,并支持移动换位功能 转载于:https://www.cnblogs.com/zhujiabin/p/7476904.html
  • Android仿Qzone底部导航栏加号弹出菜单
  • xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"&gt; &lt;RadioGroup and...
  • 就是这种效果,当我选择底部标签的时候,图标超出跟布局显示,突出了出来,本来以为要费功夫了,后面发现Android自带的一个属性clipChildren,值为true或者false,这个属性的意义在于,跟布局是否限制view超出跟布局大小,...
  • 我的Demo 参考: http://blog.csdn.net/xh870189248/article/details/75808341 http://blog.csdn.net/xh870189248/article/details/75949283 转载于:https://www.cnblogs.com/neo-java/p/10185044.html...
  • 实现效果:layout ----&gt;.mxl&...LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
  • 前言: 前几天写新项目,要求导航是在底部的,并且有个导航按钮要突出底部导航栏,在网上找了半天都没找到可以直接用的,好不容易找到一个差不多的还不可以用. 感谢: 农民伯伯: ...这边的实现方式避免了...
1 2 3 4 5 ... 20
收藏数 3,819
精华内容 1,527
关键字:

android 突出菜单