基于Android ListView之加载使用技巧

anlili177

anlili177

2016-02-19 10:10

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐基于Android ListView之加载使用技巧,希望大家看完后也有个好心情,快快行动吧!

程序员很多,遍地都是,高手也很多,但是懂设计的程序员并不多,我觉得我们不仅要成为一个coder还要成为一个designer。

我是一个比较注重ued的人,如果对一个app来说,程序是app的内涵那么设计就是要体现app的外在美观。

曾经看到一篇招聘用户体验设计师的信息问道

     如果说,在我们身边,设计师具有表达思想的力量;工程师具有实现思想的力量。

         那么请问用户体验设计师具有什么力量,有资格成为团队成员?

每个人有每个的思想每个人有每个人的见解,这就不多讲留给大家去思考。

我手机装的应用并不多,稍微采集了一把手机上加载提示的应用截图。

以上是一些谷歌Play百度迅雷腾讯的应用内容加载的截图。

一般加载提示有分三种,一种是Dialog一个带进度圈的对话框,一种是轻提示Toast无焦点的提示器,还有一种就是内嵌在内容布局里的位于最上层的视图,以上应用貌似都是这种。

第一种,ProgressDialog一般成熟产品用的比较少,因为这个东西叫简陋定制型不高。

第二种,Toast如果不定制的,很容易遭用户的忽视甚至嫌弃。而ios上却做的很好,如图。

第三种,用的会比较多,一般会用到一个叫ViewStub的东西盖在内容层的上层,其实也哭用线性布局,总之控制得当就行。

布局根布局是一个相对布局,然后是一个ListView,ListView下面是一个list为空时显示的View,再下面就是一个加载的ViewStub.
代码如下:

?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"

   

   
     ListView
        android:id="@+id/lv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/

     ImageView android:id="@+id/ivEmpt"
         android:src="@drawable/netstate_icon"
         android:layout_centerInParent="true"
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"/

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

     ViewStub
         android:id="@+id/vsLoadView"
         android:layout_centerInParent="true"
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout="@layout/loadding_view"
        /

/RelativeLayout

java文件
代码如下:

package com.bvin.test.view;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewStub;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */

    private ListView lv = null;
    private View vEmpt = null;
    private ArrayAdapterString adapter = null;
    private ListString sta = new ArrayListString();
    private ViewStub vsLoadView = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_layout);
        lv = (ListView)findViewById(R.id.lv);
        adapter = new ArrayAdapterString(this,android.R.layout.simple_list_item_1,sta);
        lv.setAdapter(adapter);
        vEmpt=findViewById(R.id.ivEmpt);
        lv.setEmptyView(vEmpt);
        vsLoadView = (ViewStub)findViewById(R.id.vsLoadView);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        menu.add(0, 0, 0, "添加");
        menu.add(1, 1, 1, "删除");
        menu.add(2, 2, 2, "清空");
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch(item.getItemId()){

        case 0:
            sta.add("萨芬i阿双方i");
            if(!vsLoadView.isShown())
            vsLoadView.inflate();
            break;
        case 1:
            if(sta.size()0)
            sta.remove(sta.size()-1);
            vsLoadView.setVisibility(View.GONE);
            break;
        case 2:
            sta.clear();
            vsLoadView.setVisibility(View.VISIBLE);
            break;

        }
        adapter.notifyDataSetChanged();
        return super.onOptionsItemSelected(item);
    }

   
}

前面那个加载的logo,后面的是内容为空的时候显示的Logo。

得出的结论是:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

1.ViewStub的inflate()方法只能调用一次,调用了inflate()调用setVisibility(View.VISIBLE);设置为可见,但是调用了setVisibility(View.VISIBLE);就不能再调用inflate(),因为这个方法setVisibility是先把布局inflate出来,然后再设置可见。

2. listView.setEmptyView();这个方法也有点讲究,就是EmptyView与Listview在同一个容器里,负责无效。

展开更多 50%)
分享

猜你喜欢

基于Android ListView之加载使用技巧

编程语言 网络编程
基于Android ListView之加载使用技巧

基于Android AppWidgetProvider的使用介绍

编程语言 网络编程
基于Android AppWidgetProvider的使用介绍

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

基于Android LayoutInflater的使用介绍

编程语言 网络编程
基于Android LayoutInflater的使用介绍

android开发之方形圆角listview代码分享

编程语言 网络编程
android开发之方形圆角listview代码分享

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

基于Android SQLite的使用介绍

编程语言 网络编程
基于Android SQLite的使用介绍

ListView异步加载图片实现思路

编程语言 网络编程
ListView异步加载图片实现思路

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

网站生成静态页面攻略3:防采集策略

网站生成静态页面攻略3:防采集策略

Android 新手入门体验

Android 新手入门体验
下拉加载更多内容 ↓