精华内容
下载资源
问答
  • 代码很简单,初学者也可以看懂,demo下载改成自己需要的界面即可一、首先展示一下预览图二、首先展示一下项目结构(开发工具Android studio)三、部分代码(详细请下载demo,本人所有上传资源全部0分) mainActivity...

    因为项目需求,所以要做此功能,我的好朋友肖凯直接扔给我一个demo,代码很简单,初学者也可以看懂,demo下载改成自己需要的界面即可

    一、首先展示一下预览图

    这里写图片描述

    二、首先展示一下项目结构(开发工具Android studio)

    这里写图片描述

    三、部分代码(详细请下载demo,本人所有上传资源全部0分)

    • mainActivity
    package com.szabh.boge;
    
    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.View;
    import android.widget.ExpandableListView;
    
    import com.szabh.boge.listview_pulltorefresh.PullToRefreshBase;
    import com.szabh.boge.listview_pulltorefresh.PullToRefreshListView;
    
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    
    public class MainActivity extends Activity  implements Handler.Callback,PullToRefreshBase.OnRefreshListener{
        private ArrayList<Company> mCompanies = new ArrayList<>();
        private ExpandableListView Ex_listview;
        private MyAdapter adapter;
        private PullToRefreshListView mPullListView;
        private Context mContext;
        private boolean isPullDown = true;// 标记上拉或下拉
        private int mQueryPage=0;//每次请求的页码
        private int mPorCount=20;//每次返回的条数
        private SimpleDateFormat mDateFormat = new SimpleDateFormat("MM-dd HH:mm");
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mContext =this;
            initData();
            initView();
        }
    
        private void initView() {
            Ex_listview = (ExpandableListView) findViewById(R.id.lv);
    
    
            mPullListView = (PullToRefreshListView) findViewById(R.id.mPullListView_id);
            Ex_listview = mPullListView.getRefreshableView();
            mPullListView.setOnRefreshListener(this);
    
            adapter = new MyAdapter(MainActivity.this,mCompanies);
            Ex_listview.setAdapter(adapter);
    
            for (int i = 0, l = mCompanies.size(); i < l; i++) {
                Ex_listview.expandGroup(i);
            }
            Ex_listview.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
                @Override
                public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
                    return true;
                }
            });
        }
    
        private void initData() {
            for (int i = 1; i < 10; i++) {
                Company c = new Company();
                c.name = "我的主布局数据" + i;
                ArrayList<String> employees = new ArrayList<>();
                for (int j = 1; j < i + 1; j++) {
                    employees.add("子的" + j);
                }
                c.employees = employees;
                mCompanies.add(c);
            }
        }
    
    
    
        private void setLastUpdateTime() {
            String text = formatDateTime(System.currentTimeMillis());
            mPullListView.setLastUpdatedLabel(text);
        }
    
        private String formatDateTime(long time) {
            if (0 == time) {
                return "";
            }
            return mDateFormat.format(new Date(time));
        }
        @Override
        public void onPullDownToRefresh(PullToRefreshBase refreshView) {
            isPullDown=true;
            mQueryPage=0;
    //      加载网络数据
        }
    
        @Override
        public void onPullUpToRefresh(PullToRefreshBase refreshView) {
            isPullDown=false;
            mQueryPage = mQueryPage+5 ;
    //      加载网络数据
        }
    
        @Override
        public boolean handleMessage(Message message) {
            return false;
        }
    }
    
    • MyAdapter适配器
    package com.szabh.boge;
    
    import android.app.Activity;
    import android.content.Context;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseExpandableListAdapter;
    import android.widget.TextView;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by XianBo.Geng on 2017/1/12.
     */
    public class MyAdapter extends BaseExpandableListAdapter{
    
        private Context context;
        private List<Company> mdata;
        private LayoutInflater inflater;
        public MyAdapter(Activity Activity, ArrayList<Company> mCompanies) {
            context =Activity;
            mdata = mCompanies;
            inflater =LayoutInflater.from(context);
        }
    
        @Override
        public int getGroupCount() {
            return mdata.size();
        }
    
        @Override
        public int getChildrenCount(int groupPosition) {
            int size = mdata.get(groupPosition).employees.size();
            if (size < 4) {
                return size;
            } else {
                if (mdata.get(groupPosition).isMore) {
                    return size + 1;
                } else {
                    return 4;
                }
            }
        }
    
        @Override
        public Object getGroup(int groupPosition) {
            return null;
        }
    
        @Override
        public Object getChild(int groupPosition, int childPosition) {
            return null;
        }
    
        @Override
        public long getGroupId(int groupPosition) {
            return 0;
        }
    
        @Override
        public long getChildId(int groupPosition, int childPosition) {
            return 0;
        }
    
        @Override
        public boolean hasStableIds() {
            return true;
        }
    
        @Override
        public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
    
    //            LayoutInflater inflater = LayouInflater.from(parent.getContext());
            View v = inflater.inflate(R.layout.item_company, null);
            TextView tv = (TextView) v.findViewById(R.id.tv);
            tv.setText(mdata.get(groupPosition).name);
    
            TextView tvs = (TextView) v.findViewById(R.id.group_service_name);
            tvs.setText(mdata.get(groupPosition).name+"啦啦啦啦");
            return v;
    
        }
    
        @Override
        public View getChildView(final int groupPosition, int childPosition, boolean isLastChild, View convertView,
                                 ViewGroup parent) {
            int size = mdata.get(groupPosition).employees.size();
            Log.i("Text","111111111111111111111111111"+size);
            if (size < 4) {
                View v = View.inflate(parent.getContext(), R.layout.item_employee, null);
                TextView tv = (TextView) v.findViewById(R.id.tv);
                tv.setText(mdata.get(groupPosition).employees.get(childPosition));
    
    
                return v;
            } else {
                if (mdata.get(groupPosition).isMore) {
                    if (childPosition == mdata.get(groupPosition).employees.size()) {
                        View v = View.inflate(parent.getContext(), R.layout.item_more, null);
                        TextView tv = (TextView) v.findViewById(R.id.tv);
                        tv.setText("点击收起");
                        tv.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                mdata.get(groupPosition).isMore = false;
                                notifyDataSetChanged();
                            }
                        });
                        return tv;
                    } else {
                        View v = View.inflate(parent.getContext(), R.layout.item_employee, null);
                        TextView tv = (TextView) v.findViewById(R.id.tv);
                        tv.setText(mdata.get(groupPosition).employees.get(childPosition));
    
                        return v;
                    }
                } else {
                    if (childPosition == 3) {
                        View v = View.inflate(parent.getContext(), R.layout.item_more, null);
                        TextView tv = (TextView) v.findViewById(R.id.tv);
                        tv.setText("点击查看更多");
                        tv.setOnClickListener(new View.OnClickListener() {
    
                            @Override
                            public void onClick(View v) {
                                mdata.get(groupPosition).isMore = true;
                                notifyDataSetChanged();
                            }
                        });
                        return v;
                    } else {
                        View v = View.inflate(parent.getContext(), R.layout.item_employee, null);
                        TextView tv = (TextView) v.findViewById(R.id.tv);
                        tv.setText(mdata.get(groupPosition).employees.get(childPosition));
    
                        return v;
                    }
                }
            }
        }
    
        @Override
        public boolean isChildSelectable(int groupPosition, int childPosition) {
            return true;
        }
    }
    
    
    • 实体类
    package com.szabh.boge;
    
    import java.util.ArrayList;
    
    public class Company {
        public String name;
        public ArrayList<String> employees;
        public boolean isMore;
    }

    四、demo地址http://download.csdn.net/detail/bobo89455100/9747002

    展开全文
  • 实例的实现,是使用computed计算属性,还有对数组使用.slice函数,不改变原数据对象。 <div id="app"> <ul> <li v-for="item in filterlist">{{item}}</li> </ul> <a v...

    实例的实现,是使用computed计算属性,还有对数组使用.slice函数,不改变原数据对象。

    <div id="app">
         <ul>
             <li v-for="item in filterlist">{{item}}</li>
         </ul>
        <a v-if="limitN!=list.length" v-on:click="limitN=list.length">
            More >
        </a>
    </div>
    <script type="text/javascript">
        
        var app = new Vue({
            el: "#app",
            data: {
                list: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                limitN:3
            },
            computed: {
                filterlist: function () {
                    return this.list.slice(0, this.limitN);
                }
            }
        })
    </script>

     

    转载于:https://www.cnblogs.com/lunawzh/p/7523026.html

    展开全文
  • 说下我在工作中遇到的这个需求1:页面上的菜单选项,选项内容是后台接口返回的数据,现在的需求是当选项的内容超出一行,在这行的右面显示更多,点击更多显示剩下的选项的内容看下效果图这是展开的效果图下面先看...

    说下我在工作中遇到的这个需求

    1:页面上的菜单选项,选项内容是后台接口返回的数据,现在的需求是当选项的内容超出一行,在这行的右面显示更多,点击更多,显示剩下的选项的内容

    看下效果图

    这是展开的效果图

    下面先看下我的html部分代码

    业务类型:

    @click="getchildMenu($event)" class="active">全部

    @click="getchildMenu($event)">{{item.name}}

    v-show="bussinessHeight>40">

    {{ bussinessType ? '收起' : '更多'}}

    说下原理show就是展开的时候使用的样式名称,hide是显示一行是使用的样式(主要就是控制容器高度)

    .show{

    height: auto;

    border-bottom: 1px solid #ebebeb;

    }

    .hidde{

    height: 40px;

    overflow: hidden;

    border-bottom: 1px solid #ebebeb;

    }

    这是我展示的菜单的部分,主要的思路是看这部分的高度是不是超出一行的高度,如果是超出一行的高度,则让dl外的div默认使用hide的样式

    那么问题来了,怎么知道展示菜单的dd部分的高度超出一行了呢?

    这就需要使用vuejs的watch来实现了

    首先,watch监听ref是bussinessTypeRef的组件的高度(内容多的话自然dd容易会被撑高),这时候与一行的高度(我这里设置的是40)作比较,如果超出,就让更多的文字按钮显示出来。下面是监听dd内容高度的watch方法

    projectType: function () {

    this.$nextTick(function(){

    let cur = this.$refs['bussinessTypeRef'];

    if(cur){

    this.bussinessHeight = cur.clientHeight;

    }

    });

    },

    这时候更多文字按钮显示,我们就控制dl外层的div容器,让该容器使用hide的样式,点击更多的时候,让控制显示更多的变量变为相反的值,这样让收起显示出来,更多消失,同时让外层的div容器使用show的样式。这样一来就实现了文字超出一行显示更多,点击收起的交互效果。

    下面附上完整的代码供参考

    业务类型:

    @click="getchildMenu($event)" class="active">全部

    @click="getchildMenu($event)">{{item.name}}

    v-show="bussinessHeight>40">

    {{ bussinessType ? '收起' : '更多'}}

    // 行业

    businessType: function () {

    this.$nextTick(function(){

    let cur = this.$refs['industryRef'];

    if(cur){

    this.industryHeight = cur.clientHeight;

    }

    });

    },

    .show{

    height: auto;

    border-bottom: 1px solid #ebebeb;

    }

    .hidde{

    height: 40px;

    overflow: hidden;

    border-bottom: 1px solid #ebebeb;

    }

    .list-filter {

    position: relative;

    margin-bottom: 20px;

    font-size: 14px;

    }

    .list-filter dl {

    overflow: hidden;

    }

    .list-filter dt {

    float: left;

    font-weight: 400;

    height: 40px;

    line-height: 40px;

    }

    .list-filter dd {

    margin-left: 30px;

    float: left;

    width: 85%;

    line-height: 40px;

    }

    .unfold{

    font-size: 14px;

    color: #00A971;

    cursor: pointer;

    font-style: normal;

    vertical-align: middle;

    display: inline-block;

    height: 40px;

    line-height: 40px;

    }

    .list-filter a {

    color: #333;

    display: inline-block;

    margin-right: 20px;

    padding: 0 5px;

    text-decoration: none;

    line-height: 2em;

    z-index: 0;

    }

    以上所述是小编给大家介绍的vuejs数据超出单行显示更多,点击展开剩余数据详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    展开全文
  • gridview中先确定有两行,每行三列,放第五个数据之后动态给list添加一个“更多分类”的按钮,点击更多分类之后”展开显示全部,并且在最后加上“收起”的按钮,在点击“收起”之后回到两行的状态并且出现“更多...
  • 点击显示更多时候,查看全部 如下:以百度云的页面为例 直接上代码: 1.html部分: <div> <div style="background-color:#eef1f6; "> <div> <p v-for="(item, index) in showdetailList"&...

    vue 点击展开显示更多 点击收起部分隐藏

    要求:
    只展示几条数据,其余的收起。点击显示更多时候,查看全部
    如下:以百度云的页面为例
    在这里插入图片描述
    在这里插入图片描述
    直接上代码:
    1.html部分:

    <div>
        <div style="background-color:#eef1f6; ">
          <div>
            <p v-for="(item, index) in showdetailList">
    
            <span  v-html="item.value"></span>
            </p>
          </div>
          <div v-if="detailList.length > 6" v-on:click="changeFoldState">
            <span style="color: deepskyblue;margin-left: 1000px;" >{{brandFold?'查看更多':'收起'}}</span>
          </div>
        </div>
      </div>
    

    2.data数据

     data() {
        return {
          brandFold: false,
          detailList:[
            {value:'<h5>1、创建环境变量</h5>'},
            {value:'<div>您可以给指定环境创建变量值,如变量 Name 为 Path, 变量 Value 为 /stage/test。  </div>'},
            {value:'<h6> 2、在API定义里设置变量</h6>'},
            {value:'<div>您可以在API定义时,后端Path、后端服务地址部分加入变量,以#变量名#表示,如在API定义中,Path写为“#Path#”。</div>'},
            {value:'<h6> 3、发布时变量值会替换变量标识,补充完API定义</h6>'},
            {value:'<div> 当该API定义发布到该环境时,API定义中的变量就会取值对应的变量值,即发布过程中变量标识会被相应环境的变量值替换。</div>'},
            {value:'<h6>注意事项:</h6>'},
            {value:'<div>1、在API定义中配置了变量标识后,在API列表——管理——调试页面将无法调试。</div>'},
            {value:'<div>2、变量名严格区分大小写。</div>'},
            {value:'<div>3、如果在API定义中设置了变量,那么一定要在要发布的环境上配置变量名&变量值,否则变量无赋值,API将无法正常发布。</div>'}
          ],
        };
      },
    

    3.使用computed属性:
    set方法里的val值就是get方法返回的值

     computed: {
        showdetailList: {
          get: function () {
            if (this.brandFold) {
              if (this.detailList.length < 7) {
                return this.detailList
              }
              let newArr = []
              for (var i = 0; i < 6; i++) {
                let item = this.detailList[i]
                newArr.push(item)
              }
              return newArr
            }
            return this.detailList
          },
          set: function (val) {
            this.showdetailList = val
          }
        }
      },
    

    changeFoldState方法:
    changeFoldState() {
    this.brandFold = !this.brandFold
    }

    参考文档:https://blog.csdn.net/weixin_41941325/article/details/80936603

    展开全文
  • 这里就需要一开始只显示6个数据点击展开才显示全部 HTML里调用showdetailList: (item,> <span>{{item.title}} <span>{{item.name}} <div v-if=detailList.length> 6 v-on:click=changeFoldState> ...
  • 请大家点击文章末尾的“了解更多”,在里面找到并关注我,里面有海量各类模板素材免费下载,我等着你噢^^メ大家请看范例图片,先在基础表格中,录入项目名称,年份,类别,不要删改表格模式。メメ基础数据表格,红色...
  • 先上效果:刚打开页面的时候,只显示部分数据点击加载更多的时候,就会加载我们预先定义的加载数量显示出来!当数据库里面的所有数据显示出来,就提示全部加载了!新建index.php&lt;!DOCTYPE html&gt; &...
  • 刚打开页面的时候,只显示部分数据点击加载更多的时候,就会加载我们预先定义的加载数量显示出来!当数据库里面的所有数据显示出来,就提示全部加载了! 新建index.php <!DOCTYPE html> <html> <...
  • 如果大于15人,则显示加载更多的按钮,先加载15条数据,其余的不加载,点击按钮之后获取全部数据放到自己写好的adapter里然后加载刷新,再隐藏加载更多的按钮。 好了,来看代码: <LinearLayout android:layout...
  • js实现更多内容的显示与隐藏

    千次阅读 2017-12-26 09:24:24
    JS实现默认显示部分文字,点击按钮显示全部        民间机构提前3天预报大理地震 地震局称违法  17日大理州5.0级地震发生之后,在微博上一条曾在3天前就预测大理将发生5.0级地震的微博受到了很网友的...
  • 全部一次性加载,通常会非常耗时,这将严重影响用户的体验性和流畅性,而分页加载则会优化加载的速度,先暂时显示一页能够显示数据项,在拖动到最下方时或点击了“显示更多”按钮时,再加载部分(需要自己定义每次...
  • 先上效果:刚打开页面的时候,只显示部分数据点击加载更多的时候,就会加载我们预先定义的加载数量显示出来!当数据库里面的所有数据显示出来,就提示全部加载了!新建index.phpjQuery+php实现点击按钮加载更多*...
  • 最简单的就是给一个加载更多的按钮,实现假分页加载更多,也就是页面上是全部数据,只是按照页面显示要求,自己规定显示部分范围,其余隐藏。如果还有数据点击下加载更多,继续拉几条数据;直到没有更多数据了...
  • 加载更多功能的实现

    千次阅读 2019-01-12 11:43:10
    当要显示的数据量非常大时,如果我们一下子显示全部,往往不利于网站优化 效果图:  那么这个效果是如何实现的呢? 以tp5举例: 主页显示的数据设置为5,就是刚加载时只显示5条,每点击一次新加载5条(这些...
  • js页面中实现加载更多功能

    千次阅读 2019-04-20 19:37:01
    js页面中实现加载更多功能 ... 最简单的就是给一个加载更多的按钮,实现假分页加载更多,也就是页面上是全部数据,只是按照页面显示要求,自己规定显示部分范围,其余隐藏。如果还有数据点击...
  • 先看一下效果:默认显示6条数据点击一次加载更多追加显示6条,直到数据全部显示完全,隐藏加载更多按钮。列表页引入一下文件:<scripttype="text/javascript"src="../jquery-1.8.3.min.js"></script> ...
  • 更多内容请查看Example - wxCharts使用说明 测试 iPhone 6s, IOS 9.3.5 小米4, ANDORID 6.0.1 兼容性问题请在Issue中提出 一些问题的说明汇总 wx-charts自适应屏幕宽度的问题 项目中如何具体使用wxCharts
  • 先上效果:刚打开页面的时候,只显示部分数据点击加载更多的时候,就会加载我们预先定义的加载数量显示出来!当数据库里面的所有数据显示出来,就提示全部加载了!新建index.phpjQuery+php实现点击按钮加载更多*...
  • 最近做的类似于微博的项目中,有个Android功能要使用到listview的向下拉刷新来刷新最新消息,向上拉刷新(滑动分页)来加载更多。 新浪微博就是使用这种方式的典型。 当用户从网络上读取微博的时候,如果一下子全部...
  • ListView分页加载数据

    2016-07-15 17:03:41
    一般对于少量的数据一次性把全部数据加载到ListView中显示,对于数据量比较大,特别在资源有限的手机设备中有重要,由用户去点击加载想要数据更为合适。在一些博客上看到关于ListView分页加载,但不太全面,实用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 406
精华内容 162
关键字:

点击更多显示全部数据