废话不多说,先看下效果:

这个就是类似抽屉的效果,这边做了三个抽屉,点击抽屉既可打开,同时关闭其他抽屉。
有人猜到怎么做的了吗?
其实很简单,就是三个 TextView + 三个Layout。 关键就在于控制Layout的显示、消失。同时也要注意Layoout的权重值weight。
下面看一下代码吧。
页面 main.xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/tv01" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/label1"
android:background="@drawable/line" android:clickable="true" />
<LinearLayout android:id="@+id/layout1"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="内容1" />
</LinearLayout>
<TextView android:id="@+id/tv02" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/label2"
android:background="@drawable/line" android:clickable="true" />
<LinearLayout android:id="@+id/layout2"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="内容2" />
</LinearLayout>
<TextView android:id="@+id/tv03" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/label2"
android:background="@drawable/line" android:clickable="true" />
<LinearLayout android:id="@+id/layout3"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="0">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="内容3" />
</LinearLayout>
</LinearLayout>
Java代码,就一个类:
package com.yfz;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
public class QQ extends Activity {
private TextView tv1;
private TextView tv2;
private TextView tv3;
private LinearLayout layout1;
private LinearLayout layout2;
private LinearLayout layout3;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupView();
}
private void setupView() {
tv1 =(TextView) findViewById(R.id.tv01);
tv2 =(TextView) findViewById(R.id.tv02);
tv3 =(TextView) findViewById(R.id.tv03);
layout1 = (LinearLayout)findViewById(R.id.layout1);
layout2 = (LinearLayout)findViewById(R.id.layout2);
layout3 = (LinearLayout)findViewById(R.id.layout3);
tv1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
layout1.setVisibility(View.VISIBLE);
layout2.setVisibility(View.GONE);
layout3.setVisibility(View.GONE);
}
});
tv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
layout1.setVisibility(View.GONE);
layout2.setVisibility(View.VISIBLE);
layout3.setVisibility(View.GONE);
}
});
tv3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
layout1.setVisibility(View.GONE);
layout2.setVisibility(View.GONE);
layout3.setVisibility(View.VISIBLE);
}
});
}
}
Demo程序中考虑将抽屉都放在上面,所以最后一个Layout的权重最高:android:layout_weight="0" ;
另外注意,Layout的android:layout_height属性都必须是wrap_content。 用fill_parent就没戏啦!
如果有人想要讲抽屉放在最下面,那么局部文件需要小改一下。
1. 换一下TextView 和 Layout的位置
2. 讲最上面的Layout的权重设为最高
分享到:
相关推荐
总结来说,"Android仿qq好友分组"项目涉及了Android UI设计、数据绑定、自定义`Adapter`、`ExpandableListView`的使用、图片资源的管理以及动态加载和缓存策略等多个重要知识点。通过实现这样的功能,开发者可以提升...
在Android开发中,有时我们需要...通过创建数据模型、适配器和设置事件监听,我们可以轻松实现类似QQ好友分组的列表。这个例子不仅展示了基本用法,还提供了实际代码参考,对于学习和实践Android UI设计非常有帮助。
在这个“Android仿QQ好友列表分组实现增删改及持久化Demo”中,我们将深入探讨如何实现这样一个功能,并讨论其中的关键知识点。 1. **数据结构与模型设计** - **好友模型**:首先,我们需要定义一个表示好友的数据...
在Android开发中,ExpandableListView是一个非常实用的控件,它可以展示可展开和折叠的列表,非常适合用来模拟QQ好友分组这样的场景。本教程将详细讲解如何利用ExpandableListView实现类似QQ好友分组的功能。 首先...
在技术实现方面,本项目为Android开发者提供了一套完整的仿QQ好友分组功能的实现方案。开发者可以在此基础上进行学习和再创造,不仅可以应用于即时通讯应用中,也可以拓展到其他需要好友分组功能的应用场景中。此外...
综上所述,这个"android qq好友列表"实例涵盖了Android UI设计、自定义适配器、自定义视图、数据加载、事件处理以及动画效果等多个方面的知识。通过实践这样的项目,开发者可以深入理解Android应用开发的核心技术,...
在这个"Android实现QQ好友列表源码"项目中,开发者可以深入理解如何在Android环境中构建这样一个功能。 1. **用户界面设计**: - 使用Android Studio中的XML布局文件来设计界面,包括RecyclerView或者ListView作为...
因为ListView只能显示一级列表,如果实现像QQ好友列表那样的效果,就需要用到ExpandableListView,入门新手可能对该控件不是很熟悉,通过本Android源码你将了解一下基本用法,其实跟ListView差不多。 注:测试时...
在Android开发中,实现类似QQ好友分组的折叠效果是一个常见的需求,这涉及到对ExpandableListView控件的熟练运用。`ExpandableListView`是Android SDK提供的一种可扩展的列表视图,它允许用户展开和折叠各个组,非常...
通过以上步骤,你应该能够实现一个类似QQ好友列表的分组悬浮效果,并带有刷新功能。在实际开发过程中,不断调试和优化,确保功能的稳定性和性能的高效性,是提高用户满意度的关键。记得参考提供的示例代码,根据项目...
总结起来,实现Android仿QQ好友列表分组的功能,关键在于理解并熟练使用ExpandableListView,以及自定义适配器来处理数据展示。同时,合理地组织数据结构,实现增删改操作,以及利用数据持久化技术,都是保证功能...
本文将深入探讨如何实现这样一个功能,并基于给定的"android仿QQ好友列表"项目进行分析。 首先,从标题我们可以知道,这个项目是针对Android平台,目的是模仿QQ应用中的好友列表功能。QQ好友列表通常包括用户的头像...
在Android开发中,`PinnedHeaderExpandableListView`是一个实现特定功能的自定义视图组件,主要用于构建类似于QQ好友列表的界面。这个组件的核心特性是它支持分组显示数据,并且在用户滚动列表时,每个分组的头部...
在Android平台上实现一个类似QQ的好友列表功能,涉及到多个关键知识点和...以上就是实现Android中QQ好友列表功能的主要技术点,实际开发中还需要根据具体需求进行调整和优化,例如加入搜索、分组、好友详情页等功能。
本篇文章将详细讲解如何使用RecyclerView来简单实现类似QQ好友列表的展开效果。 首先,我们需要了解RecyclerView的基本用法。RecyclerView替代了旧版的ListView,提供了更高效的数据绑定和渲染机制。创建...
在Android开发中,"仿QQ好友分组"的实现是一个典型的使用ExpandableListView来构建层级结构数据展示的案例。ExpandableListView是Android SDK提供的一种可扩展的列表视图,它可以显示一个父项列表,每个父项下还可以...
在Android开发中,"类似于QQ好友分组"的实现通常涉及到使用ExpandableListView组件来创建一个可展开和折叠的列表视图,这种视图能够帮助用户更好地组织和浏览大量数据,就如同QQ应用中的好友分组功能。下面我们将...
在Android开发中,创建具有分组功能的列表是常见的需求,比如模仿QQ好友列表的展示方式。本资源“Android高仿qq列表分组”提供了一个使用自定义组件`MyExpandableListView`实现的示例,它能帮助开发者理解并掌握如何...