第一种方法:

在.xml文件中将这两个List分别放入不同的布局管理器中,比如说

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" > <LinearLayout
android:id="@+id/citylist_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <ExpandableListView
android:id="@+id/expandablelist"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="36.56"
android:background="#ffffff"
android:cacheColorHint="#00000000"
android:childDivider="@android:color/darker_gray"
android:divider="@android:color/black"
android:dividerHeight="1.5dip"
android:listSelector="#00000000" />
</LinearLayout> <LinearLayout android:id="@+id/localmap_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffcc99"
android:visibility="visible" > </ListView> </LinearLayout>
</RelativeLayout>

上面一个ExpandableListView 一个ListView分别放入两个

LinearLayout布局中。

在MainActivity.java文件中写入如下代码
LinearLayout cl = (LinearLayout) findViewById(R.id.citylist_layout);
LinearLayout lm = (LinearLayout) findViewById(R.id.localmap_layout);
lm.setVisibility(View.VISIBLE);
cl.setVisibility(View.GONE); LinearLayout cl = (LinearLayout) findViewById(R.id.citylist_layout);
LinearLayout lm = (LinearLayout) findViewById(R.id.localmap_layout);
lm.setVisibility(View.GONE);
cl.setVisibility(View.VISIBLE);

就可实现两个ListView在同一时刻只出现一个。

<友情提示   View.GONE    不要替换成 View.INVISIBLE 可能出错

希望能搞明白

View.GONE
View.VISIBLE
View.INVISIBLE

三者的区别

>

第二种方法:使用Fragment

需要注意的是,如果报错如

java.lang.IllegalStateException The specified child already has a parent. You must call removeView() on the child's parent first

我犯错的原因是在继承Fragment的子类实现方法

 public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState)
{
View =inflater.inflate(R.layout.xxx,contauner,true);
return v;
}

解决办法

1. 参数  true 改为 false

public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState)
{
View =inflater.inflate(R.layout.xxx,contauner,false);
return v;
}

2改用另外一个方法参数

public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState)
{
View =inflater.inflate(R.layout.xxx,null);
return v;
}


最新文章

  1. git-----------------git:如何让git识别我修改了文件夹名字和文件名字的大小写问题。
  2. 同样版本的jstl,都是jstl1.2版本,有个有问题,另一个没有问题
  3. IOS中线程的通信
  4. 转:Asp JSONP 实践
  5. dede后台反应特别慢-转
  6. oracle expdp导出远程数据到本地
  7. 为什么天线的回波损耗以-10dB大小来衡量?
  8. [LeetCode] 9. 回文数
  9. 2.抽象工厂(Abstract Factory)
  10. 效率生产力工具 —— idea 插件
  11. deeplearning 源码收集
  12. Java集合——HashMap,HashTable,ConcurrentHashMap区别
  13. 使用DbUtils对JDBC封装实现面向实体查询
  14. 算法笔记--sg函数详解及其模板
  15. iPhone激活策略知识讲解:官方解锁和黑解
  16. bzoj 1798 线段树
  17. java使用Redis8--3.0集群
  18. Oracle Java Mission Control MBean 服务器 飞行记录器
  19. php 常用方法
  20. Python3.x:判断字符串是否为全数字、英文、大写、小写、空白字符

热门文章

  1. 6/11 sprint2 看板和燃尽图的更新
  2. 第二次结对作业-WordCount进阶需求
  3. java 数据结构与算法---二叉树
  4. TCP/IP协议三次握手和四次挥手大白话解说
  5. HDU4791_Alice&#39;s Print Service
  6. DAY3-Python学习笔记
  7. 题解 CF762A 【k-th divisor】
  8. 跟踪分析Linux内核的启动过程--20135334赵阳林
  9. yum报错Segmentation fault
  10. Java之Java程序与虚拟机