精华内容
下载资源
问答
  • 比如我们要增加行业及分类两个自定义分类. 前台效果图 后台效果图,发表文章时,右下角会自动显示   一,在模板的functions.php中的最底部,php结束标签前面,添加如下代码   //自定义文章类型 // 搜索...

    演示效果http://www.gengu.org/tag/lol

    本方法不需要自定义文章类型(模型).用系统自动的文章功能即可使用,修改简单实用.

    比如我们要增加行业及分类两个自定义分类.

    前台效果图

    后台效果图,发表文章时,右下角会自动显示

     

    一,在模板的functions.php中的最底部,php结束标签前面,添加如下代码

     

    //自定义文章类型
    // 搜索关键字 register_taxonomy
    add_action( 'init', 'create_hangye' );//wordpress初始化
    function create_hangye() {
    $labels = array(
    	'name' => _x( '产品行业筛选', '产品应用的行业选项' ),
    	'singular_name' => _x( 'hangye', '行业名称' ),
    	'search_items' =>  __( '行业搜索' ),
    	'all_items' => __( '全部行业' ),
    	
    	
    	'edit_item' => __( '修改标签' ),
    	'update_item' => __( '更新标签' ),
    	'add_new_item' => __( '增加新的行业标签' ),
    	'new_item_name' => __( '新行业名字' ),
    	);
     
      register_taxonomy('hangye','post',array(
    	'hierarchical' => True,
    	'labels' => $labels
    	));
    }
    add_action( 'init', 'create_mycats' );//<span style="color: rgb(85, 85, 85); font-family: 'Microsoft Yahei'; font-size: 15px; line-height: 25px;">wordpress初始化</span>
    function create_mycats() {
    $labels = array(
    	'name' => _x( '产品分类筛选', '筛选' ),
    	'singular_name' => _x( 'mycats', 'taxonomy singular name' ),
    	'search_items' =>  __( '产品分类搜索' ),
    	'all_items' => __( '全部产品分类' ),
    
    	'edit_item' => __( '修改标签' ),
    	'update_item' => __( '更新标签' ),
    	'add_new_item' => __( '增加新的产品分类标签' ),
    	'new_item_name' => __( '新产品分类名字' ),
    	);
     
      register_taxonomy('mycats','post',array(
    	'hierarchical' => True,
    	'labels' => $labels
    	));
    }

     

     

     

     

     

    其中,register_taxonomy为自定义分类的注册函数,系统自带的.

    'hierarchical' => True表示后台发表文章时,自定义选项为复选框的形式.直接打勾即可.而不是手工填写.其它参数网上搜索查看吧

    修改后,上传,后台即可看到效果.如图,然后进去增加选项即可.

     

    二,顶级分类模板上,循环调用子分类.及子分类下的部分文章

    假如要在分类编号为3的顶级分类上使用本插件,则在模板目录中.建立category-3.php这个模板,里面内容,可参考以下代码

     

     

    <div class="box filter">
    	 <br/>
    	<p class="tagfilter" id="hangye"<?php if($_GET['hangye']!=''){echo ' data="'.$_GET["hangye"].'"';}?>><b>行业:</b>
    	<?php
    	$terms = get_terms("hangye");
    	$count = count($terms);
    	if ( $count > 0 ){
    	foreach ( $terms as $term ) {
    		if(strtolower(urlencode($_GET['hangye']))==$term->slug){
    			echo '<a data="'. $term->slug .'" style="border-color: orange;">' . $term->name . '</a>';
    		}else{
    			echo '<a style="margin-right:10px"data="'. $term->slug .'">' . $term->name . '</a>';
    		}
    	}
    	}
    	?></p>
    	<p class="tagfilter" id="mycats" <?php if($_GET['mycats']!=''){echo ' data="'.$_GET["mycats"].'"';}?>><b>分类:</b> <?php
    	$terms = get_terms("mycats");
    	$count = count($terms);
    	if ( $count > 0 ){
    	foreach ( $terms as $term ) {
    		if(strtolower(urlencode($_GET['mycats']))==$term->slug){
    			echo '<a data="'. $term->slug .'" style="border-color: orange;">' . $term->name . '</a>';
    		}else{
    			echo '<a style="margin-right:10px"data="'. $term->slug .'">' . $term->name . '</a>';
    		}
    	}
    	}
    	?> </p>
    	<p style="margin-left:40px"><button id="filterSub" >点击筛选</button></p>
    </div>
    
    
    
    </pre><pre code_snippet_id="1848920" snippet_file_name="blog_20160824_2_2283605" name="code" class="php">
    <!--container-->
    <div id="container">
    	<div class="mainbound body">
    
    <div class="products_container" style="padding-top:10px;">
    	
    
    <div id="products_fluid_row1" class="products_fluid_row">
    <?php
    	$i = 0;  // 仅为奇偶项 class 作准备
    	
    	$categories =  get_categories('child_of='. $cat .'&depth=0&hide_empty=0&orderby=id&order=asc');// 找出其所有子分类,并按ID号升序排列,其实这里还可以使用数组array(8,9,11,12)输出指定id的分类。
    	$num=8;//指定每次循环输出的文章篇数     
    	foreach ($categories as $category) {  // 开始循环子分类
    		$now_cat = $category->term_id;  // 子分类ID
    		//$cat_name = $category->cat_name;  // 子分类名称
    ?> 
    <?php $posts = query_posts("&cat={$now_cat}&orderby=date&showposts={$num}" );
    
     ?>
    	
    	<div class="products_fluid_head">
    <div class="products_fluid_name_new">
    <strong><?php single_cat_title(); ?></strong><!--其实这里用single_cat_title()和用变量$cat_name都可以了-->
    		<a href="<?php echo get_category_link($category); ?>"style="float:right;font-weight:normal" target="_blank">More>></a>
    		</div>
    	</div>
    	<div class="prod_row_new">
    		
    		<?php while(have_posts()) : the_post(); ?>
    		
    		
    		 <div class="prod_col_new left ">
                   <div class="prod_img_new">
    			   
    			   <?php if ( has_post_thumbnail() ) { ?>
    <?php the_post_thumbnail(); ?>
    <?php } else {?>
    <img src="<?php bloginfo('template_url'); ?>/images/xxx.jpg" />
    <?php } ?>
    
    
    			 
    									</div>
                   <div class="prod_type_new"><a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?></a></div>
                   <div class="prod_name_new"><a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?></a></div>
               </div>
    		   
    		  
    		<?php endwhile; ?>
    		
    	</div>
    <?php $i++; }//$i实现递增?>
    	
    
    </div><!--products_fluid_row-->
    
    
    
    	
    </div>
    	</div>
    </div><!--container-->

     

    注意, 模板中筛选需要通过js实用,代码直接加在模板中

     

    <script>
    	$('.tagfilter a').click(function() {
    		var papaDate = $(this).parent('.tagfilter').attr('data');
    		$(this).parent('.tagfilter').find('a').css('borderColor', '');
    		if(papaDate == undefined | papaDate == "" | papaDate != $(this).attr('data')) {
    			$(this).css('borderColor', 'orange').parent('.tagfilter').attr('data', $(this).attr('data'));
    		} else if(papaDate == $(this).attr('data')) {
    			$(this).css('borderColor', '').parent('.tagfilter').attr('data', '');
    		} else {
    			$(this).css('borderColor', '').parent('.tagfilter').attr('data', '');
    		}
    	});
    	$('#filterSub').click(function() {
    		var urlNow = 'http://' + window.location.host + '/?';
    		var url = urlNow;
    		var hangye = $('#hangye').attr('data');
    		var mycats = $('#mycats').attr('data');
    		var tag = $('#tag').attr('data');
    		if(typeof(hangye) != 'undefined') {
    			if(hangye.length > 0) {
    				url += 'hangye=' + hangye;
    			}
    		}
    		if(typeof(mycats) != 'undefined') {
    			if(url.substr(-1) != '?') {
    				url += '&';
    			}
    			if(mycats.length > 0) {
    				url += 'mycats=' + mycats;
    			}
    		}
    		if(typeof(tag) != 'undefined') {
    			if(url.substr(-1) != '?') {
    				url += '&';
    			}
    			if(tag.length > 0) {
    				url += 'tag=' + tag;
    			}
    		}
    		if(urlNow != url) {
    			window.location.href = url;
    		}
    	})
    	</script>

     

     

     

     

     

     

     

     

    三,搜索结束页模板.

    结束页默认使用archive.php归档模板.如果要使用专用模板.必须新建立一个名为taxonomy.php的新模板.里面内容参考.

     

    <?php get_header(); ?>
    <div class="prod_row_new">
    
    		
                          <?php while (have_posts()) : the_post(); ?>
    					  
               <div class="prod_col_new left ">
                   <div class="prod_img_new"><a href="<?php the_permalink(); ?>" title="TD350"><?php if ( has_post_thumbnail() ) { ?>
    						            <?php the_post_thumbnail('full'); ?>
    						            <?php } else {?>
    						            <img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>"/>
    						            <?php } ?></a></div>
                   <div class="prod_type_new"><a href="<?php the_permalink(); ?>" title="TD350"><?php the_title(); ?></a></div>
                   <div class="prod_name_new"><a href="<?php the_permalink(); ?>" title="TD350"><?php the_title(); ?></a></div>
               </div>
           <?php endwhile; ?>
    	   
    	   
           </div>
    <?php get_footer(); ?>   


    如果要为其中一个分类法定义一个专用模板.比如行业模板.可以建立一个taxonomy-hangye.php.模板即可.

     

     

    四.搜索结束的链接优化.

     

    如果想用http://www.360.com/color/red这种形式的链接来显示,那就需要重新制作一个对应自定义分类的页面来展示。
    这里我们使用tag的展现方式(这里以twentytwelve为例)
    首先我们复制一份tag.php文件,重新命名为taxonomy-color.php(color为我们之前命名的分类名)。
    get_header(); ?>下方添加代码

     

    <?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); ?>

     

    把
    
    <h1 class="archive-title"><?php printf( __( 'Tag Archives: %s', 'twentytwelve' ), '<span>' . single_tag_title( '', false ) . '</span>' ); ?></h1>
    
    替换为
    
    <h1 class="archive-title"><?php printf( __( 'Tag Archives: %s', 'twentytwelve' ), '<span>' . $term->name . '</span>' ); ?></h1>

     

     

     

     

     

    在
    
    while ( have_posts() ) : the_post();
    
    的下面添加
    
    query_posts(array( 'post_type'=>'post', 'color'=>$term->slug));

    保存即可使用

     

     

    展开全文
  • 主要包含了 店铺分类,侧滑删除,商品筛选增加和减少,价格计算等功能。看看效果图: 重要代码: private void showExpandData(){ cartExpandAdapter=new CartExpandAdapter(this,cartExpandablelistview,ca...

    电商项目中常常有购物车这个功能,做个很多项目了,都有不同的界面,选了一个来讲一下。

    主要包含了 店铺分类,侧滑删除,商品筛选,增加和减少,价格计算等功能。

    看看效果图:

      

     

    重要代码:

     private void showExpandData(){
            cartExpandAdapter=new CartExpandAdapter(this,cartExpandablelistview,cartInfo.getData());
            cartExpandablelistview.setAdapter(cartExpandAdapter);
            int intgroupCount = cartExpandablelistview.getCount();
            for (int i=0; i<intgroupCount; i++)
            {
                cartExpandablelistview.expandGroup(i);
            }
            /**
             * 全选
             */
            cartExpandAdapter.setOnItemClickListener(new OnViewItemClickListener() {
                @Override
                public void onItemClick(boolean isFlang, View view, int position) {
                    cartInfo.getData().get(position).setIscheck(isFlang);
                    int length=cartInfo.getData().get(position).getItems().size();
                    for (int i = 0; i < length; i++) {
                        cartInfo.getData().get(position).getItems().get(i).setIscheck(isFlang);
                    }
                    cartExpandAdapter.notifyDataSetChanged();
                    showCommodityCalculation();
                }
            });
    
            /**
             * 单选
             */
            cartExpandAdapter.setOnClickListenterModel(new OnClickListenterModel() {
                @Override
                public void onItemClick(boolean isFlang, View view,int onePosition, int position) {
                    cartInfo.getData().get(onePosition).getItems().get(position).setIscheck(isFlang);
                    int length=cartInfo.getData().get(onePosition).getItems().size();
                    for (int i = 0; i < length ; i++) {
                        if (! cartInfo.getData().get(onePosition).getItems().get(i).ischeck()){
                            if (!isFlang){
                                cartInfo.getData().get(onePosition).setIscheck(isFlang);
                            }
                            cartExpandAdapter.notifyDataSetChanged();
                            showCommodityCalculation();
                            return;
                        }else {
                            if (i== ( length-1)){
                                cartInfo.getData().get(onePosition).setIscheck(isFlang);
                                cartExpandAdapter.notifyDataSetChanged();
                            }
                        }
                    }
                    showCommodityCalculation();
                }
            });
            cartExpandAdapter.setOnClickDeleteListenter(new OnClickDeleteListenter() {
                @Override
                public void onItemClick(View view, int onePosition, int position) {
                    Toast.makeText(MainActivity.this,"删除操作",Toast.LENGTH_LONG).show();
                }
            });
    
            /***
             * 数量增加和减少
             */
            cartExpandAdapter.setOnClickAddCloseListenter(new OnClickAddCloseListenter() {
                @Override
                public void onItemClick(View view, int index, int onePosition, int position,int num) {
                    if (index==1){
                        if (num>1) {
                            cartInfo.getData().get(onePosition).getItems().get(position).setNum((num - 1));
                            cartExpandAdapter.notifyDataSetChanged();
                        }
                    }else {
                        cartInfo.getData().get(onePosition).getItems().get(position).setNum((num + 1));
                        cartExpandAdapter.notifyDataSetChanged();
                    }
                    showCommodityCalculation();
                }
            });
           
        }

    这是我项目中用到的购物车,基本的功能都有了的。

    有需要的小伙们,可以参考一下。

     

    代码下载Github:https://github.com/DickyQie/android-shoppingcart


    展开全文
  • iOS 筛选菜单

    千次阅读 2018-12-28 04:58:47
    增加单独侧滑菜单筛选 2018.12.26更新 修复无法响应事件bug 2018.12.25更新 dropMenu的title自适应宽度 增加适量注释,模型封装 外部模型控制内部用户点击筛选是否记录 适配x,xs,xr,xsmax 去掉刚开始创建的动画...

    GHDropMenuDemo

    自由定制电商筛选菜单

    超级简单好用的电商筛选菜单

    2018.12.28更新

    • 增加单独侧滑菜单筛选

    2018.12.26更新

    • 修复无法响应事件bug

    2018.12.25更新

    • dropMenu的title自适应宽度
    • 增加适量注释,模型封装
    • 外部模型控制内部用户点击筛选是否记录
    • 适配x,xs,xr,xsmax
    • 去掉刚开始创建的动画


    • 自定义筛选标题,自定义筛选内容,自定义筛选标签,自定义筛选头部内容
    • 数组越界处理
    • 价格输入筛选
    • 实现tag标签,单选,多选,取消选中效果
    • 保留上次选中选项
    • 动画展开,移除
    • 可以重新传入模型,重新刷新数据源
    • 选中内容通过代理的方式回调
    • 对原有项目无污染,直接拖进项目即可使用

    使用方法

    • GHDropMenu 拖入项目中
    • 导入
    #import "GHDropMenu.h"
    复制代码
        /** 配置筛选菜单模型 */
        GHDropMenuModel *configuration = [[GHDropMenuModel alloc]init];
        /** 配置筛选菜单是否记录用户选中 默认NO */
        configuration.recordSeleted = NO;
        /** 设置数据源 */
        configuration.titles = [configuration creaDropMenuData];
        
        /** 创建dropMenu 配置模型 &&frame */
        GHDropMenu *dropMenu = [[GHDropMenu alloc]creatDropMenuWithConfiguration:configuration frame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 44)];
        dropMenu.delegate = self;
        
        [self.view addSubview:dropMenu];
        
    复制代码
    • 需要构造json数据
    详见demo
    复制代码

    demo


    转载于:https://juejin.im/post/5c25acd6f265da616e4c80ab

    展开全文
  • 仿美团的下拉筛选菜单

    万次阅读 2016-12-20 17:47:43
    项目下载项目在GitHub上的地址:https://github.com/Hebin320/DropDownMenu项目在CSDN上的下载地址:http://download.csdn.net/detail/hebin320320/9716576项目预览图DropDownMenu介绍与使用这个项目是对开源项目...

    项目下载


    项目在GitHub上的地址:

    https://github.com/Hebin320/DropDownMenu

    项目在CSDN上的下载地址:

    http://download.csdn.net/detail/hebin320320/9716576


    项目预览图


    项目预览图


    DropDownMenu介绍与使用


    这个项目是对开源项目DropDownMenu的在实际项目中的应用。在这个项目中,实现了用自定义view和fragment两种方式完成了对DropDownMenu的使用,一个view独立成一个类,通过接口的方式供Activity调用,同时解决了复用自定义view的问题。通过这个项目,可以能够很清楚地搭建一个下拉筛选框,不仅能供多个Activity使用同一个view,而且还大大减少了Activity中的代码量。


    DropDownMenu在github上的地址:

    https://github.com/fg2q1q3q/DropDownMenu


    项目使用

    Gradle


    在project 中build.gradle下增加:

      allprojects {
            repositories {
                ...
                maven { url "https://jitpack.io" }
            }
        }

    在app module中增加:

      dependencies {
                compile 'com.github.fg2q1q3q:DropDownMenu:1.1.1'
        }


    layout


    <com.zxl.library.DropDownMenu
        android:id="@+id/dropDownMenu"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:ddmenuTextSize="13sp" //tab字体大小
        app:ddtextUnselectedColor="@color/drop_down_unselected" //tab未选中颜色
        app:ddtextSelectedColor="@color/drop_down_selected" //tab选中颜色
        app:ddmenuSelectedIcon="@mipmap/drop_down_selected_icon" //tab选中状态图标
        app:ddmenuUnselectedIcon="@mipmap/drop_down_unselected_icon"//tab未选中状态图标
        app:ddmaskColor="@color/mask_color"     //遮罩颜色,一般是半透明
        app:ddmenuBackgroundColor="@color/white" //tab 背景颜色
        app:ddmenuMaxHeight="280dp"//筛选菜单最大高度,默认为wrap
        app:ddneedSetSlectedColor="true"//设置选中option后tab是否改变颜色
        ...
     />



    注意:DropDownMenu高度必须是match_parent,否则动画效果会出现问题

    Activity中,除了下拉筛选框之外,还有它的主体内容,一般情况下是个列表;这里需要说明的是,主体内容的控件不是写在DropDownMenu的下方,而是通过view的形式,设置给DropDownMenu。


    所以,新建一个xml,名字为activity_main_view,里面就放了个TextView,用来显示筛选框选中的文字,代码如下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:orientation="vertical"
        android:layout_gravity="center"
        >
    
        <TextView
            android:id="@+id/tv_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="哈哈哈哈哈哈哈哈哈哈"
            android:gravity="center"
            />
    
    
    </LinearLayout>
    



    从预览图可以看出,筛选框里面有四个界面,前两个界面是用实例化xml的方式来实现界面内容的自定义,后两个界面用Fragment的方式实现的;前两个界面的实现方式是一样的,后两个界面实现了给Fragment传参从而显示不同的内容。


    第一个界面的xml,layout_first,界面只有两个按钮,实现点击改变Activity中文本框的文本;代码如下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:orientation="horizontal"
        android:layout_gravity="center"
        >
    
        <TextView
            android:id="@+id/btn_one"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:background="@color/colorPrimary"
            android:gravity="center"
            android:padding="8dp"
            android:text="第一个"
            android:textColor="@color/white"
            android:textSize="16sp" />
        <TextView
            android:id="@+id/btn_two"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:background="@drawable/ok_bg"
            android:gravity="center"
            android:padding="8dp"
            android:text="第二个"
            android:textColor="@color/white"
            android:textSize="16sp" />
    
    </LinearLayout>
    



    新建一个类,名字叫做FirstView.class,实例化xml,并对相应的控件做相应的操作,代码如下:

    class FirstView {
    
        private Context context;
        private MyItemClickListener listener;
    
        FirstView(Context context) {
            this.context = context;
        }
    
        /**
        *  供Activity调用的方法 ,将选择的值传给Activity
        * */
        void setListener(MyItemClickListener listener) {
            this.listener = listener;
        }
    
        View firstView() {
            View view = LayoutInflater.from(context).inflate(R.layout.layout_first, null);
            TextView tvBtnOne = (TextView) view.findViewById(R.id.btn_one);
            TextView tvBtnTwo = (TextView) view.findViewById(R.id.btn_two);
            tvBtnOne.setOnClickListener(new mClick("第一个"));
            tvBtnTwo.setOnClickListener(new mClick("第二个"));
            return view;
        }
    
        private class mClick implements View.OnClickListener {
    
            String string;
    
            private mClick(String string) {
                this.string = string;
            }
    
            @Override
            public void onClick(View v) {
                listener.onItemClick(v, 1, string);
            }
        }
    
    }



    然后,新建一个Fragment,ThirdView.class,xml中是三个文本框,Fragment的代码如下:

    public class ThirdView extends Fragment {
    
        @InjectView(R.id.tv_01)
        TextView tv01;
        @InjectView(R.id.tv_02)
        TextView tv02;
        @InjectView(R.id.tv_03)
        TextView tv03;
    
        MyItemClickListener listener;
    
        public void setListener(MyItemClickListener listener) {
            this.listener = listener;
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.fragment_third_view, container, false);
            ButterKnife.inject(this, view);
            return view;
        }
    
        @Override
        public void onDestroyView() {
            super.onDestroyView();
            ButterKnife.reset(this);
        }
       /**
        * 通过这个方法,可以实现Fragment的复用
        * */
        public void setDifferentUse(String tag){
            switch (tag){
                case "four":
                    tv01.setText("复用界面的第一个文本");
                    tv02.setText("复用界面的第二个文本");
                    tv03.setText("复用界面的第三个文本");
                    break;
                default:
                    break;
            }
        }
    
        @OnClick({R.id.tv_01, R.id.tv_02, R.id.tv_03})
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.tv_01:
                    listener.onItemClick(view,3,"tvOne");
                    break;
                case R.id.tv_02:
                    listener.onItemClick(view,3,"tvTwo");
                    break;
                case R.id.tv_03:
                    listener.onItemClick(view,3,"tvThree");
                    break;
            }
        }
    }



    然后在xml中引用Fragment,新建xml,名字为layout_third.xml,代码如下:

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/fg_third"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:name="com.hebin.dropdownmenu.ThirdView"
        tools:layout="@layout/fragment_third_view" />


    最后在Activity中,new 各个界面,然后设置给DropDownMenu,即可实现效果,代码如下:

    public class MainActivity extends AppCompatActivity implements MyItemClickListener {
    
        @InjectView(R.id.dropDownMenu)
        DropDownMenu mDropDownMenu;
    
    
        private String headers[] = {"界面一", "界面二","界面三","界面四"};
        private List<View> popupViews = new ArrayList<>();
        private TextView tvText;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ButterKnife.inject(this);
            initView();
        }
    
        private void initView() {
    
            /**
             * 第一个界面
            * */
            FirstView firstView = new FirstView(MainActivity.this);
            firstView.setListener(this);
            popupViews.add(firstView.firstView());
            /**
            * 第二个界面
            * */
            SecView secView = new SecView(MainActivity.this);
            secView.setListener(this);
            popupViews.add(secView.secView());
            /**
            * 第三个界面
            * */
            View thirdView = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_third, null);
            ThirdView fragment = (ThirdView) getSupportFragmentManager().findFragmentById(R.id.fg_third);
            fragment.setListener(this);
            fragment.setDifferentUse("third");
            popupViews.add(thirdView);
            /**
            * 第四个界面
            * */
            View fourView = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_four, null);
            ThirdView fragment_01 = (ThirdView) getSupportFragmentManager().findFragmentById(R.id.fg_four);
            fragment_01.setListener(this);
            fragment_01.setDifferentUse("four");
            popupViews.add(fourView);
    
            /**
            * Dropdownmenu下面的主体部分
            * */
            View fifthView = LayoutInflater.from(MainActivity.this).inflate(R.layout.activity_main_view, null);
            tvText = (TextView) fifthView.findViewById(R.id.tv_text);
            mDropDownMenu.setDropDownMenu(Arrays.asList(headers), popupViews, fifthView);
        }
    
        @Override
        public void onBackPressed() {
            //退出activity前关闭菜单
            if (mDropDownMenu.isShowing()) {
                mDropDownMenu.closeMenu();
            } else {
                super.onBackPressed();
            }
        }
    
    
        /**
        * 每个界面中的控件的点击事件,点击将界面中的参数传给activity中调用
        * */
        @Override
        public void onItemClick(View view, int postion, String string) {
            switch (postion){
                case 1:
                    mDropDownMenu.setTabText(string);
                    mDropDownMenu.closeMenu();
                    tvText.setText(string);
                    break;
                case 2:
                    mDropDownMenu.setTabText(string);
                    mDropDownMenu.closeMenu();
                    tvText.setText(string);
                    break;
                case 3:
                    mDropDownMenu.setTabText(string);
                    mDropDownMenu.closeMenu();
                    tvText.setText(string);
                    break;
                default:
                    break;
            }
        }
    }



    注意:第四个界面用的也是第三个界面的Fragment,但是不能用layout_third.xml这个布局,也不能用同一个id,所以新建一个layout_four.xml,里面内容跟layout_third.xml的一样,只不过换了个ID

    展开全文
  • 最近利用vue和vantUI写h5的项目,遇到的问题总结: 问题:vantUI–tab切换或者筛选条件时上拉加载不触发上拉load事件 loading为false是加载中,finished为true是已结束状态,onLoad是执行函数(分页添加list的值) ...
  • Mybatis多条件筛选

    千次阅读 2018-05-30 17:21:39
    最近用mybatis做项目数据库框架,学习了很多知识,今天分享两个小知识: 关于if标签的使用 where 1=1小技巧 关于if标签的使用 我们在做业务时,经常遇到按照条件查询,例如: 我们要根据年龄和性别筛选出...
  • //增加当切换县区的时候更换服务区名 $scope.switchArea = function (currentAreaId) { updateSelectRegionName(); }; var allProvinces = $filter('filter')($scope.allRegions, {RegionType: 0}); for (var...
  • 筛选组件PopsTabView

    2017-06-30 18:09:46
    PopsTabViewPopsTabView是个filter容器,他可以快速,构建不同筛选样式,自由组合成一组tab.目前版本,支持 单列单选,双列单选,复杂筛选.后续筛选会不断完善补充.ShowIntroduction用户只需要,知道自己 的filter 需要哪种...
  • Jira中最好用的功能莫过于筛选器与仪表板了,本文简单总结这两个功能的使用方法。 筛选器Filter 1.在“问题”栏选择“搜索问题” 2.选择搜索属性,比如这里搜索test-project的BUG 3.若需要增加搜索...
  • Android下拉筛选DropDownMenu

    千次阅读 2018-03-29 17:29:37
    项目下载项目在GitHub上的地址:https://github.com/Hebin320/DropDownMenu项目在CSDN上的下载地址:http://download.csdn.net/detail/hebin320320/9716576项目预览图DropDownMenu介绍与使用这个项目是对开源项目...
  • JIRA-使用教程_筛选器-报表

    千次阅读 2020-09-09 19:51:16
    筛选器_报表~
  • 有个项目,客户要求表格要像Excel那样具有根据列的复杂筛选功能,而且最好不要改变太多原先的使用习惯。 上网搜了一下,大部分的都是把整列绑定到一个combobox上,覆盖到列标题上,从而达到简单的筛选功能。 仔细...
  • IOS-筛选功能之封装重构

    千次阅读 2015-09-15 22:35:42
    IOS筛选功能之封装重构,很多电商公司都会用到这个功能吧大概,筛选应该很常用了,或者使用的就是模糊搜索等等之类的方法.
  • 前两天看个朋友搞个用PopWindow搞了个筛选侧滑,看了下需求也不麻烦,刚好最近也有个商城项目前几天也学习了下Popwindow(以前侧滑都是用DrawerLayout实现的),就顺手写了下,分别用PopWindow和DrawerLayout实现了先...
  • 最近一直在为公司招聘前端工程师,前前后后筛选了几百份简历,面试了大几十人,这过程中也发生了很多奇特的事情。渐渐明白,为什么大厂招聘时会在学历上设置门槛。 这篇文章就给大家聊聊,从筛选简历到最终面试中...
  • 前言:近期项目重构,公司对项目结构进行了调整,增加了条件筛选的功能。在网上也看到了很多自定义的控件实现类似美团的附近筛选功能,实现方式基本都是自定义view继承自LinearLayout等布局控件,于是自己在Button的...
  •  已筛选的视图列索引是不只一种方法来检索项更有效、 但而不获取阻止大型列表和库使用的主要方法。使用索引的列创建筛选的视图是一个两步过程: 创建...由于每个索引维护索引的每个数据库操作会增加一些开销,因此
  • Chromium项目文化

    千次阅读 2014-07-22 17:14:10
    Chromium是一个开源的浏览器项目,官方网站列出了许多文档。 官网最值得学习的地方:许多指引写得非常细致,能以老师教导学生的态度去叙述如何工作,而不是为了写文档而写文档,例如“不要害怕问问题,总有人会在...
  • Springboot 之 使用JPA做数据筛选

    千次阅读 2016-10-22 01:56:23
    在文章《Springboot 之 使用JPA对数据进行排序》和《Springboot 之 使用JPA进行分页操作》中讲述了JPA的排序和分页,在本篇文章中将以前两个测试项目的数据做一下筛选功能的描述及详情的测试。 修改接口对象 筛选...
  • h5级联下拉、分类筛选

    千次阅读 2016-11-18 17:22:21
    级联下拉列表框这种常见的需求,相信大家都经常遇到,下面两种写法都曾运用在项目,测试是没问题,但代码可能不是最好的,亲如果有更好的建议,请留言给我哦~一起探讨注:数据若为 省市 数据,可利用省市联动的特殊...
  • java不确定多条件筛选接口

    千次阅读 2018-12-21 10:59:00
    有同学来信说看了数据持久层的实现之后还是不能正确的使用不确定多条件筛选来做项目,无法写出接口来,今天正好有点空闲我就把接口的代码也展现出来风向给大家 接口层其实有接注意的点: 1,对参数的处理(APP接口...
  • jira如何创建看板筛选器_创建看板

    千次阅读 2020-08-09 18:04:43
    jira如何创建看板筛选器A kanban board is a workflow visualization tool that is great for organizing everything you need to do when making an application. It helps to make sure you accomplish all the ...
  • 三、UI-Grid 筛选

    千次阅读 2017-03-29 17:58:57
    UI-Grid能够行筛选。需要在 grid options中设置enableFiltering标识(默认是关闭状态)。在 column def中设置enableFiltering :false 可以禁用该列的过滤。参看下面例子中的“company”列。在 column def中可以通过...
  • Jquery自动生成当前年份日期筛选

    千次阅读 2016-04-22 18:05:37
    项目需要,写了这个自动生成年份和月份的筛选框。其中年份可以从指定年到今年,月份默认生成今年已经到达的月份,并默认选中今月。并且当年份筛选框改变时,联动改变月份筛选框。注意:都是在jQuery下写的//首先是...
  • 项目整合管理

    千次阅读 2008-12-08 23:02:00
    项目整合管理就是为满足各方需求而进行协调以达到预期目的的过程。它是一项综合性、全局性的工作,主要内容是在相互冲突的目标或可选择的目标中权衡得失。虽然所有的项目管理过程在某种程度上都可看成是一个整体,但...
  • vue3实现饿了么商家筛选排序(二)

    千次阅读 2019-04-25 23:58:52
    这是对上一个饿了么项目的完善: vue3实现饿了么短信验证和高德定位 效果展示 ①完善了首页的内容,增加了广告轮播图、推荐美食栏和商家列表展示 ②对商家不同的排序方式、筛选商家 ③搜索关键词 具体实现 ...
  • 为了提高项目管理水平,赢得市场竞争,特别是在加入WTO后在国内、国际市场上拥有与国际接轨的项目管理人才, --> 越来越多的业界人士正通过不同的方式参加项目管理培训并力争获得世界上最权威的职业项目经理(PMP)...
  • 在实际项目中,我们可能会有大量的特征可使用,有的特征携带的信息丰富,有的特征携带的信息有重叠,有的特征则属于无关特征,如果所有特征不经筛选地全部作为训练特征,经常会出现维度灾难问题,甚至会降低模型的...
  • 淘宝等app上都有看到过这样的下拉菜单筛选栏,而据我所知,别人还原的做法大多是用单纯的ListView或者ExpandableListView更或者自定义View之类的来实现,但我是第一想法使用利用PopupWindow+ListView的方法实现的,...
  • 项目管理之---项目范围蔓延

    千次阅读 2012-07-17 09:06:47
    范围蔓延就是: 在系统项目进行期间不期望的需求缓慢增加。 特征蔓延:不受控制地增加技术特征到一个项目中。你本来想更好更出色的完成项目,但你不断增加新的想法...可能会失去宏观上对项目的把握,反而失败。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,746
精华内容 19,898
关键字:

如何增加筛选项目