zoukankan      html  css  js  c++  java
  • 个人技术博客

    个人技术博客——fragment中嵌套listview

    首先,fragment是将布局碎片化的一种工具。通过使用fragment,你可以在同一个活动中切换不同的布局,并且可以在切换屏幕中一部分你想切换的布局中。保留你想保留的控件与布局。这样就会大大的节省activity之间的切换。

    listview很好理解。就是可以上下滑动的控件。listview由若干个item所组成,每个item可互相独立。item组成列表即listview。
    首先,是在布局中定义一块碎片。

       <FrameLayout
        android:id="@+id/fg2"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </FrameLayout>
    

    ~
    然后,在添加新的布局。新添加的布局是item布局。即listview中每一个元素的基本构成在这个布局中定义。

     <?xml version="1.0" encoding="utf-8"?>
         <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    
    <ListView
        android:id="@+id/list_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_margin="10dip"
        android:divider="#FFF"
        android:dividerHeight="1px" />
    

    然后。在就是再添加一个类。这个类将 listview这个控件调用到你之前所定义的fragment中,完成在fragment中嵌套listview。在此之后,你可以在主活动之中调用这个类,从而把fragment再调用到活动中。

    代码如下:

    import android.os.Bundle;
        import android.support.annotation.Nullable;
        import android.support.v4.app.Fragment;
        import android.support.v4.app.ListFragment;
        import android.view.LayoutInflater;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.ArrayAdapter;
        import android.widget.ListView;
    
    public class ChatListView extends Fragment {
    
    private ListView lv;
    private String Data[]={"北京","sh","fz","xm","hz","上海","福州","南宁","厦门","广西","广州","陕西","深圳","黑龙江"};
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View view= inflater.inflate(R.layout.list_view , container, false);
        ListView listView = (ListView)view.findViewById(R.id.list_view);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1,Data);
        listView.setAdapter(arrayAdapter);
        return view;
    
    }
    

    }

    其中定义item,需要用到适配器adapter,在这里,我并没有自定义适配器(定义适配器的方法可以自行百度,不复杂)
    特别要注意的是,在上面这个类中,要继承Fragment类而不用继承Fragmentlist。
    而且最终返回值要是 view。不然可能就会造成在真机调试apk的时侯出现闪退现象。
    (一般闪退现象首先要考虑你布局文件,或者加载布局文件的时侯出了问题)

    与团队项目的关系

    我主要是负责日程管理界面的编写。其中用户可以灵活的切换他所需要显示的日程天数。如果不用fragment而用activity来叠的话。那么用户在注销活动的时侯就会非常麻烦,需要不停的按back键。而使用fragment就很好的解决了这个问题。提高了效率和用户体验。

  • 相关阅读:
    error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
    unity官方换装教程Character Customization 学习笔记
    python中执行os.system(),程序处于堵塞状态,debug报pydev debugger: process 11152 is connecting
    python中安装pywinauto成功,执行时报如下错误的解决办法
    jmeter之Ramp-up Period(in seconds)
    jmeter之HTTP信息管理器、正则表达式联合使用(获取登录session
    linux之crontab定时器
    python之删除指定目录指定日期下的日志文件
    python2含有中文路径报错解决办法[xe4xbfxa1xe6x81xaf]
    性能测试之指标参考标准
  • 原文地址:https://www.cnblogs.com/031502529wgc/p/7843036.html
Copyright © 2011-2022 走看看