Android之原始的QQ好友分组实现
废话不多说,先看下效果:
这个就是类似抽屉的效果,这边做了三个抽屉,点击抽屉既可打开,同时关闭其他抽屉。
有人猜到怎么做的了吗?
其实很简单,就是三个 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之实现QQ好友分组(ExpandableListView)
在项目开发中,也许我们遇到过ListView中嵌套ListView,但谷歌建议我们最好别这样做,因此他们写好了一个ExpandableListView类,他继承ListView,可以实现ListVie ...
- expandableListview的使用,模仿qq好友分组点击收缩扩展
我主要讲述的是用listview实现.模仿qq好友分组点击收缩.扩展功能 这个是对listview的拓展,用法比较相似,还是需要一个适配器 MainActivitypublic class MainA ...
- 猜想 QQ好友分组 (微信好友)多层次分组策略 QQ好友过多
猜想 QQ好友过多 QQ好友分组 (微信好友)多层次分组策略 问题: 在QQ好友比较多的好友分组,一大堆不同的好友简单的堆叠在一起,翻看一次一个分组里数百个的好友要花费较长的时间,而且一大排头像文字 ...
- IOS 实现QQ好友分组展开关闭功能
贴出核心代码 主要讲一下思路. - (void)nameBtnClick:(myButton *)sender { //获取当前点击的分组对应的section self.clickIndex = s ...
- Qt可拖拽排序表格(类似QQ好友分组排序)
1,简介 为了最佳体验,一个拖拽行排序的功能研究了几个小时.效果参考的QQ好友分组的排序. 网上查了下好像没有人发布QT版类似的代码,于是自己动手 QQ好友分组排序效果: 2,效果 这是最终效果图,有 ...
- QQ好友分组模拟小程序
QQ好友分组:一个好友组里有多个好友,一个好友只能选择一个组,这样好友组和好友之间就是一个一对多的关系.在此程序中封装一个好友类即Buddy类,一个组类即Group类.在Buddy类有有关好友的最基本 ...
- js实现qq好友分组
qq好友分组 <style>ul,h2 {padding: 0;margin: 0;background-color: wheat;}li {list-style: none;}#list ...
- 模仿QQ好友分组风格
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <title> ...
- UITableView的折叠收缩和QQ好友分组效果
可折叠展开的tableView,QQ好友分组列表 demo下载地址https://github.com/zhengwenming/ExpandTableView 原理分析:这个可以折叠的table ...
最新文章
- 从15000个Python开源项目中精选的Top30,Github平均star为3707,赶紧收藏!
- bzoj 2653 middle (可持久化线段树)
- BUUCTF-WEB:[强网杯 2019]随便注 1
- 备战“双11”,阿里云为企业提供一站式资源保障服务
- 在myeclipse中建立maven项目
- 数据挖掘 点击更多 界面_8(更多)技巧,可快速改善用户界面
- 高程数据处理_珠峰长高了吗?新高程怎么算出来的?揭秘
- 浏览器中插入富文本编辑器
- Qt文档阅读笔记-Multiple Inheritance Example 实例解析及Automatic Connections解析
- SQLServer无法使用特殊主体'sa'的解决
- html使用最ie高版本,从html,css,javascript三方面谈谈“浏览器兼容性”的问题
- android porting usb audio,android - 在android中启动时找不到audio-hal-2-0 - 堆栈内存溢出...
- 移动端日期控件 mobiscroll
- 求解偏微分方程开源有限元软件deal.II学习--Step 4
- Bootstraphead里的内容
- 计算机二级C语言题库(60套真题+刷题软件)2022年9月份新题第一套
- fiddler响应中文乱码问题
- C#编程--ribbon界面介绍
- linux hd4000显卡驱动,AMD 即将放弃 Radeon HD2000/3000/4000 系列显卡的驱动支持
- MFiX存储ReactionRates的模块
热门文章
- 英汉互译在线翻译-英文翻译中文的翻译
- frame切换、多窗口切换
- git撤销commit
- (7)解除预制体关系Break Prefab Instance(Unpack Prefab)
- 警告:Named Route ‘Main‘ has a default child route. When navigating to this named route
- 程序员如何更换证件照背景色
- 中央农村工作会议释放重要信号,AI 技术助力农业的十种路径,未来可期
- Three.js学习七——播放模型动画时模型沿着轨迹移动
- 2022年河南省高职单招(综合素质)考试冲刺试题及答案
- 燕大计算机研究生毕业待遇,研究生人均“月薪上万”是真是假,过来人坦言:想想就好,别认真...