在项目中,我们可能有多种数据来源比如:

里面有ListView也有当获得数据为空的时候显示的空信息。根据点击的项目还是差事不同,显示的空消息也不同。a.没有收藏的项目,b目前没有收藏的差事。

其实实现方法很多。也都可以实现。不过用viewStub在这里最恰当不过了。

先看此Activity的布局吧。布局文件:

  1. <

FrameLayout android:id="@+id/layoutFrm"

  1. android:layout_width="match_parent"
  2. android:layout_height="0dp"
  3. android:layout_weight="1"
  4. android:background

="@color/background_color" > <ListView xmlns:ptr="http://schemas.android.com/apk/res-auto"

  1. android:id="@+id/lstV_fav_task"
  2. -----------若干你懂得-------
  3. ptr:ptrMode

="pullFromEnd" > </com.handmark.pulltorefresh.library.PullToRefreshListView> <ViewStub android:id="@+id/viewStub"

  1. android:layout_gravity="center"
  2. android:layout_width="match_parent"
  3. android:layout_height="wrap_content"
  4. android:layout

="@layout/activity_task_favourite_nodata" /> </FrameLayout>

在代码里初始化下!那这个ViewStub加载的布局文件的activity_task_favorite_nodata又在哪里呢?

看布局:

<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android"

  1. android:id="@+id/txtV_nodata"
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content"
  4. android:layout_gravity="center"
  5. android:drawablePadding="20dp"
  6. android:drawableTop="@drawable/favourite_nodata"
  7. android:gravity="center_horizontal"
  8. android:text="@string/my_task_fav_nodata"
  9. android:textColor

="@color/listview_header_textcolor" />

那等于说介个布局其实就是个Textview了。闹了半天,我以为还要搞个Textview还要高个Imageview,弱爆了,啥都不懂出来混看人家写的我又悲剧了。

(就是这个drawable/favourite_nodata.png文件啦)

代码里该怎么办呢?先设置为不可见(预加载下)干。不难。关键道哥不学习。

layoutEmpty =

  1. (TextView) viewStub.inflate();
  2. layoutEmpty.setVisibility(View.GONE);

肯定要获取数据了。。那得有个方法。在这里:

  1. private void getFavProjects()
  1. 得到数据里,判断datalist.size 。。。有了。。。下面你懂得
  1. private void setEmptyViewByDataList(int type) {
  2. if (datalist.size() > 0) {
  3. layoutEmpty.setVisibility(View.GONE);
  4. } else {
  5. if (type == TYPE_PROJECT)
  6. layoutEmpty.setText(R.string.my_project_fav_nodata);
  7. else
  8. layoutEmpty.setText(R.string.my_task_fav_nodata);
  9. layoutEmpty.setVisibility(View.VISIBLE);
  10. }
  11. }

学习下关于ViewStub实例的用法及带Drawable的TextView的妙用的更多相关文章

  1. Android(java)学习笔记264:Android下的属性动画高级用法(Property Animation)

    1. 大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画 ...

  2. Android(java)学习笔记208:Android下的属性动画高级用法(Property Animation)

    1. 大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画 ...

  3. jquery下json数组的操作用法实例

    jquery下json数组的操作用法实例: jquery中操作JSON数组的情况中遍历方法用的比较多,但用添加移除这些好像就不是太多了. 试过json[i].remove(),json.remove( ...

  4. jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)

    今天学习jQuery,看到nth-child(even)用法,特意找了下这个选择器的用法,在CSS3标准中,用法很强大. 对此,我把CSS3标准中nth-child()用法大致介绍下: CSS3伪类选 ...

  5. Selenium2学习-039-WebUI自动化实战实例-文件上传下载

    通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...

  6. Selenium2学习-014-WebUI自动化实战实例-012-Selenium 操作下拉列表实例-div+{js|jquery}

    之前已经讲过了 Selenium 操作 Select 实现的下拉列表:Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select,但是在实际的日 ...

  7. 【转】Java学习之Iterator(迭代器)的一般用法 (转)

    [转]Java学习之Iterator(迭代器)的一般用法 (转) 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭 ...

  8. Python学习:类和实例

    Python学习:类和实例 本文作者: 玄魂工作室--热热的蚂蚁 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规 ...

  9. JavaScript学习(2)call&apply&bind&eval用法

    javascript学习(2)call&apply&bind&eval用法 在javascript中存在这样几种特别有用的函数,能方便我们实现各种奇技淫巧.其中,call.bi ...

随机推荐

  1. 【基础练习】【vector】codevs3393 序列倒置

    版权信息 转载请注明出处 [ametake版权全部]http://blog.csdn.net/ametake欢迎来看 题目非常easy,本质还是练习一下vector 题目描写叙述 Descriptio ...

  2. python批量改动指定文件夹文件名称

    这小样例仅仅要是说明用python怎么批量改动指定文件夹的文件名称: 记得要把脚本跟改动的文件放在同一个文件夹下 #encoding:utf-8 import os import sys files ...

  3. 单向链表JAVA代码

        //单向链表类 publicclassLinkList{       //结点类     publicclassNode{         publicObject data;         ...

  4. POJ 3865 - Database 字符串hash

    [题意] 给一个字符串组成的矩阵,规模为n*m(n<=10000,m<=10),如果某两列中存在两行完全相同,则输出NO和两行行号和两列列号,否则输出YES [题解] 因为m很小,所以对每 ...

  5. css内容生成器

    一,内容生成器:content 补充before和after伪类选择器: 1):将内容添加到某个选择器定义的单个或者多个元素的每一个实例之前或者之后 2)与before选择器配合使用(同理大家想下会不 ...

  6. linux 分区

    1.硬盘分区分为基本分区和扩展分区, 扩展分区分下去就是逻辑分区,而且逻辑分区没有数量上的限制. 2.查看linux系统分区具体情况 fdisk - l 3.查看某个目录是哪个分区下的 df /boo ...

  7. SQL SERVER 查询特定的前几条数据

    1. 使用MS SQL Server 2008: 2. 数据库内容如下: insert into xuexi1 values('张三0', '数学', 98 ) insert into xuexi1 ...

  8. Linq中字段数据类型转换问题(Linq to entity,LINQ to Entities 不识别方法"System.String ToString()"问题解决)

    1.在工作中碰到这样一个问题: 使用linq时,需要查询两个表,在这两张表中关联字段分别是int,和varchar()也就是string,在linq中对这两个字段进行关联, 如果强制类型转换两个不同类 ...

  9. win7下搭建nginx+php的开发环境

    本来在win7下用的是IIS做web服务器,但近来因项目需求的原因,需要在服务器遇到404错误的时候自动做转向(不是在客户端的跳转,而是在服务器收到客户端请求去某目录下读取文件返回时,如果发现目录或目 ...

  10. JS-商品图片点击轮换

    //小图预览区域图片轮换键const LIWIDTH=62;var moveCount=0;document.getElementById("btForward").onclick ...