Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ChayChan
PowerfulViewLibrary
提交
4cadce63
P
PowerfulViewLibrary
项目概览
ChayChan
/
PowerfulViewLibrary
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
6
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PowerfulViewLibrary
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
6
Issue
6
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4cadce63
编写于
5月 30, 2017
作者:
C
chaychan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善ExpandableLinearLayout的Demo和README介绍
上级
658000de
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
615 addition
and
432 deletion
+615
-432
README.md
README.md
+199
-19
app/build.gradle
app/build.gradle
+2
-0
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+4
-1
app/src/main/java/com/chaychan/powerfulviewlibrary/activity/EllCustomBottomDemoActivity.java
...rfulviewlibrary/activity/EllCustomBottomDemoActivity.java
+135
-0
app/src/main/java/com/chaychan/powerfulviewlibrary/activity/EllDefaultBottomDemoActivity.java
...fulviewlibrary/activity/EllDefaultBottomDemoActivity.java
+93
-0
app/src/main/java/com/chaychan/powerfulviewlibrary/activity/ExpandableLinearLayoutChooseActivity.java
...ibrary/activity/ExpandableLinearLayoutChooseActivity.java
+2
-4
app/src/main/java/com/chaychan/powerfulviewlibrary/activity/ExpandableLinearLayoutDemoActivity.java
...wlibrary/activity/ExpandableLinearLayoutDemoActivity.java
+0
-63
app/src/main/java/com/chaychan/powerfulviewlibrary/bean/ProductBean.java
...va/com/chaychan/powerfulviewlibrary/bean/ProductBean.java
+52
-0
app/src/main/res/drawable/shape_border.xml
app/src/main/res/drawable/shape_border.xml
+8
-0
app/src/main/res/layout/activity_expandable_text_view_demo.xml
...rc/main/res/layout/activity_expandable_text_view_demo.xml
+2
-2
app/src/main/res/layout/item_product.xml
app/src/main/res/layout/item_product.xml
+47
-31
app/src/main/res/layout/page_ell_custom_bottom_demo.xml
app/src/main/res/layout/page_ell_custom_bottom_demo.xml
+36
-8
app/src/main/res/layout/page_ell_default_bottom_demo.xml
app/src/main/res/layout/page_ell_default_bottom_demo.xml
+27
-299
app/src/main/res/mipmap-hdpi/arrow_down_grey.png
app/src/main/res/mipmap-hdpi/arrow_down_grey.png
+0
-0
viewlib/src/main/java/com/chaychan/viewlib/ExpandableLinearLayout.java
...ain/java/com/chaychan/viewlib/ExpandableLinearLayout.java
+5
-2
viewlib/src/main/java/com/chaychan/viewlib/expandabletextview/ExpandableTextView.java
...aychan/viewlib/expandabletextview/ExpandableTextView.java
+2
-2
viewlib/src/main/res/layout/item_expand_collapse.xml
viewlib/src/main/res/layout/item_expand_collapse.xml
+1
-1
viewlib/src/main/res/mipmap-xxxhdpi/icon_orange_arrow_down.png
...ib/src/main/res/mipmap-xxxhdpi/icon_orange_arrow_down.png
+0
-0
viewlib/src/main/res/mipmap-xxxhdpi/icon_orange_arrow_up.png
viewlib/src/main/res/mipmap-xxxhdpi/icon_orange_arrow_up.png
+0
-0
未找到文件。
README.md
浏览文件 @
4cadce63
...
...
@@ -227,33 +227,213 @@ SwipeRefreshLayout的刷新回调中,只做了这样的处理,NumberRunningT
  
关于NumberRunningTextView的源码解析可以查看我的博客
[
http://blog.csdn.net/chay_chan/article/details/70196478
](
http://blog.csdn.net/chay_chan/article/details/70196478
)
##ExpandableLinearLayout介绍
  
ExpandableLinearLayout是一个可以展开全部和收起部分子条目的LinearLayout,可以指定默认展示前几个条目,点击查看全部则显示全部条目,效果如下:
###场景介绍
  
开发的过程中,有时我们需要使用到这样一个功能,在展示一些商品的时候,默认只显示前几个,例如先显示前三个,这样子不会一进入页面就被商品列表占据了大部分,可以先让用户可以看到页面的大概,当用户需要查看更多的商品时,点击“展开”,就可以看到被隐藏的商品,点击“收起”,则又回到一开始的状态,只显示前几个,其他的收起来了。就拿美团外卖的订单详情页的布局作为例子,请看以下图片:
![](
../img/meituan1.jpg
)
![](
.
/introduce_img/expandableLinearLayout.gif
)
![](
.
./img/meituan2.jpg
)
布局文件中配置,defaultItemCount为默认显示的条目数,expandText当处于展开时的文字提示,hideText当处于收起时的文字提示。
<com.chaychan.viewlib.ExpandableLinearLayout
android:id="@+id/ell_product"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="vertical"
app:defaultItemCount="2"
app:expandText="收起内容"
app:hideText="查看更多"
>
  
订单详情页面一开始只显示购买的前三样菜,当点击“点击展开的时候”,则将购买的所有外卖都展示出来,当点击“点击收起”时,则将除了前三样菜以外的都隐藏起来。其实要完成这样的功能并不难,为了方便自己和大家以后的开发,我将其封装成一个控件,取名为ExpandableLinearLayout,下面开始介绍它如何使用以及源码解析。
##使用方式
###一、使用默认展开和收起的底部
在布局文件中,使用ExpandableLinearLayout,代码如下:
<com.chaychan.viewlib.ExpandableLinearLayout
android:id="@+id/ell_product"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="vertical"
app:useDefaultBottom="true"
app:defaultItemCount="2"
app:expandText="点击展开"
app:hideText="点击收起"
></com.chaychan.viewlib.ExpandableLinearLayout>
和LinearLayout的使用方法类似,如果是静态数据,可以在两个标签中间插入子条目布局的代码,也可以在java文件中使用代码动态插入。useDefaultBottom是指是否使用默认底部(默认为true,如果需要使用默认底部,可不写这个属性),如果是自定义的底部,则设置为false,下面会介绍自定义底部的用法,defaultItemCount="2",设置默认显示的个数为2,expandText为待展开时的文字提示,hideText为待收起时的文字提示。
在java文件中,根据id找到控件,动态往ExpandableLinearLayout中插入子条目并设置数据即可,代码如下:
</com.chaychan.viewlib.ExpandableLinearLayout>
代码中动态添加子条目
@Bind(R.id.ell_product)
ExpandableLinearLayout ellProduct;
ExpandableLinearLayout ellProduct = (ExpandableLinearLayout) findViewById(R.id.ell_product);
for (int i = 0; i < 9; i++) {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page_ell_default_bottom_demo);
ButterKnife.bind(this);
ellProduct.removeAllViews();//清除所有的子View(避免重新刷新数据时重复添加)
//添加数据
for (int i = 0; i < 5; i++) {
View view = View.inflate(this, R.layout.item_product, null);
ellProduct.addItem(view);
ProductBean productBean = new ProductBean(imgUrls[i], names[i], intros[i], "12.00");
ViewHolder viewHolder = new ViewHolder(view, productBean);
viewHolder.refreshUI();
ellProduct.addItem(view);//添加子条目
}
}
class ViewHolder {
@Bind(R.id.iv_img)
ImageView ivImg;
@Bind(R.id.tv_name)
TextView tvName;
@Bind(R.id.tv_intro)
TextView tvIntro;
@Bind(R.id.tv_price)
TextView tvPrice;
ProductBean productBean;
public ViewHolder(View view, ProductBean productBean) {
ButterKnife.bind(this, view);
this.productBean = productBean;
}
private void refreshUI() {
Glide.with(EllDefaultBottomDemoActivity.this)
.load(productBean.getImg())
.placeholder(R.mipmap.ic_default)
.into(ivImg);
tvName.setText(productBean.getName());
tvIntro.setText(productBean.getIntro());
tvPrice.setText("¥" + productBean.getPrice());
}
}
效果如下:
![](
../img/1.gif
)
####1.支持修改默认显示的个数
可以修改默认显示的个数,比如将其修改为3,defaultItemCount="3"
效果为:
![](
../img/2.gif
)
####2.支持修改待展开和待收起状态下的文字提示
可以修改待展开状态和待收起状态下的文字提示,比如修改expandText="查看更多",hideText="收起更多"
效果为:
![](
../img/3.gif
)
####3.支持修改提示文字的大小、颜色
可以修改提示文字的大小和颜色,对应的属性分别是tipTextSize,tipTextColor。
####4.支持更换箭头的图标
可以修改箭头的图标,只需配置arrowDownImg属性,引用对应的图标,这里的箭头图标需要是向下的箭头,这样当展开和收起时,箭头会做相应的旋转动画。设置arrowDownImg="@mipmap/arrow_down_grey",修改为灰色的向下图标。
效果如下:
![](
../img/4.gif
)
###二、使用自定义底部
布局文件中,ExpandableLinearLayout配置useDefaultBottom="false",声明不使用默认底部。自己定义底部的布局。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<!--商品列表-->
<com.chaychan.viewlib.ExpandableLinearLayout
android:id="@+id/ell_product"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="vertical"
app:defaultItemCount="2"
app:useDefaultBottom="false"
>
</com.chaychan.viewlib.ExpandableLinearLayout>
<!--自定义底部-->
<RelativeLayout...>
<!--优惠、实付款-->
<RelativeLayout...>
</LinearLayout>
</ScrollView>
java文件中,代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page_ell_custom_bottom_demo);
ButterKnife.bind(this);
... //插入模拟数据的代码,和上面演示使用默认底部的代码一样
//设置状态改变时的回调
ellProduct.setOnStateChangeListener(new ExpandableLinearLayout.OnStateChangeListener() {
@Override
public void onStateChanged(boolean isExpanded) {
doArrowAnim(isExpanded);//根据状态箭头旋转
//根据状态更改文字提示
if (isExpanded) {
//展开
tvTip.setText("点击收起");
} else {
tvTip.setText("点击展开");
}
}
});
//为自定义的底部设置点击事件
rlBottom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ellProduct.toggle();
}
});
}
// 箭头的动画
private void doArrowAnim(boolean isExpand) {
if (isExpand) {
// 当前是展开,箭头由下变为上
ObjectAnimator.ofFloat(ivArrow, "rotation", 0, 180).start();
} else {
// 当前是收起,箭头由上变为下
ObjectAnimator.ofFloat(ivArrow, "rotation", -180, 0).start();
}
}
主要的代码是为ExpandableLinearLayout设置状态改变的回调,rlBottom为自定义底部的根布局RelativeLayout,为其设置点击事件,当点击的时候调用ExpandableLinearLayout的toggle()方法,当收到回调时,根据状态旋转箭头以及更改文字提示。
效果如下:
![](
../img/5.gif
)
到这里,ExpandableLinearLayout的使用就介绍完毕了,关于ExpandableLinearLayout的源码可以查看我的博客:
####**导入方式**####
...
...
app/build.gradle
浏览文件 @
4cadce63
...
...
@@ -24,4 +24,6 @@ dependencies {
testCompile
'junit:junit:4.12'
compile
'com.android.support:appcompat-v7:24.2.1'
compile
project
(
':viewlib'
)
compile
'com.github.bumptech.glide:glide:3.7.0'
compile
'com.jakewharton:butterknife:7.0.0'
}
app/src/main/AndroidManifest.xml
浏览文件 @
4cadce63
...
...
@@ -2,6 +2,8 @@
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"com.chaychan.powerfulviewlibrary"
>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<application
android:name=
".MyApplication"
android:allowBackup=
"true"
...
...
@@ -24,8 +26,9 @@
</activity>
<activity
android:name=
".activity.RunningTextViewDemoActivity"
>
</activity>
<activity
android:name=
".activity.E
xpandableLinearLayout
DemoActivity"
>
<activity
android:name=
".activity.E
llDefaultBottom
DemoActivity"
>
</activity>
<activity
android:name=
".activity.EllCustomBottomDemoActivity"
></activity>
<activity
android:name=
".activity.ExpandableLinearLayoutChooseActivity"
>
</activity>
</application>
...
...
app/src/main/java/com/chaychan/powerfulviewlibrary/activity/EllCustomBottomDemoActivity.java
0 → 100644
浏览文件 @
4cadce63
package
com.chaychan.powerfulviewlibrary.activity
;
import
android.os.Bundle
;
import
android.support.v7.app.AppCompatActivity
;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
com.bumptech.glide.Glide
;
import
com.chaychan.powerfulviewlibrary.R
;
import
com.chaychan.powerfulviewlibrary.bean.ProductBean
;
import
com.chaychan.viewlib.ExpandableLinearLayout
;
import
com.nineoldandroids.animation.ObjectAnimator
;
import
butterknife.Bind
;
import
butterknife.ButterKnife
;
/**
* ExpandableLinearLayout使用自定义底部
*/
public
class
EllCustomBottomDemoActivity
extends
AppCompatActivity
{
@Bind
(
R
.
id
.
ell_product
)
ExpandableLinearLayout
ellProduct
;
@Bind
(
R
.
id
.
tv_tip
)
TextView
tvTip
;
@Bind
(
R
.
id
.
iv_arrow
)
ImageView
ivArrow
;
@Bind
(
R
.
id
.
rl_bottom
)
RelativeLayout
rlBottom
;
private
String
[]
imgUrls
=
new
String
[]{
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496728066&di=e5669ad80a241da52b03301ee0ba2749&imgtype=jpg&er=1&src=http%3A%2F%2Fimg.taopic.com%2Fuploads%2Fallimg%2F121017%2F240425-12101H2202646.jpg"
,
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496728145&di=c2ece04e1445eaf91fe3f3bf12ad1080&imgtype=jpg&er=1&src=http%3A%2F%2Fimg1.qunarzz.com%2Ftravel%2Fd6%2F1610%2F33%2F21ce9c91e70ab7b5.jpg_r_720x480x95_b2bcd2c5.jpg"
,
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496728182&di=1e06ea8b74863155b9d52736093beda8&imgtype=jpg&er=1&src=http%3A%2F%2Fe.hiphotos.baidu.com%2Fbainuo%2Fcrop%3D0%2C0%2C470%2C285%3Bw%3D470%3Bq%3D79%2Fsign%3Da8aa38e3b73533fae1f9c96e95e3d12f%2F6c224f4a20a44623b885148f9e22720e0df3d794.jpg"
,
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496133522433&di=1132cb36274a205f8ce30e21f47a37ee&imgtype=0&src=http%3A%2F%2Fi3.s2.dpfile.com%2Fpc%2Fb68a2a4316ae56373e83ce65ad7dfada%2528249x249%2529%2Fthumb.jpg"
,
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496728305&di=444bfe10c434c09043855e7a6a7f8ace&imgtype=jpg&er=1&src=http%3A%2F%2Fe.hiphotos.baidu.com%2Fbainuo%2Fcrop%3D0%2C0%2C470%2C285%3Bw%3D470%3Bq%3D99%2Fsign%3D65498f21374e251ff6b8beb89ab6e527%2F0df3d7ca7bcb0a46d662a6226c63f6246b60af6c.jpg"
};
private
String
[]
names
=
new
String
[]{
"炒河粉"
,
"炒米粉"
,
"隆江猪脚饭"
,
"烧鸭饭"
,
"叉烧饭"
};
private
String
[]
intros
=
new
String
[]{
"好吃又不腻"
,
"精选上等米粉,绝对好吃"
,
"隆江猪脚饭,肥而不腻,入口香爽,深受广东人民的喜爱"
,
"简单而美味,充满烧腊香味"
,
"色香味俱全"
};
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
page_ell_custom_bottom_demo
);
ButterKnife
.
bind
(
this
);
ellProduct
.
removeAllViews
();
//清除所有的子View(避免重新刷新数据时重复添加)
//添加数据
for
(
int
i
=
0
;
i
<
5
;
i
++)
{
View
view
=
View
.
inflate
(
this
,
R
.
layout
.
item_product
,
null
);
ProductBean
productBean
=
new
ProductBean
(
imgUrls
[
i
],
names
[
i
],
intros
[
i
],
"12.00"
);
ViewHolder
viewHolder
=
new
ViewHolder
(
view
,
productBean
);
viewHolder
.
refreshUI
();
ellProduct
.
addItem
(
view
);
//添加子条目
}
ellProduct
.
setOnStateChangeListener
(
new
ExpandableLinearLayout
.
OnStateChangeListener
()
{
@Override
public
void
onStateChanged
(
boolean
isExpanded
)
{
doArrowAnim
(
isExpanded
);
//根据状态箭头旋转
//根据状态更改文字提示
if
(
isExpanded
)
{
//展开
tvTip
.
setText
(
"点击收起"
);
}
else
{
tvTip
.
setText
(
"点击展开"
);
}
}
});
rlBottom
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
ellProduct
.
toggle
();
}
});
}
// 箭头的动画
private
void
doArrowAnim
(
boolean
isExpand
)
{
if
(
isExpand
)
{
// 当前是展开,箭头由下变为上
ObjectAnimator
.
ofFloat
(
ivArrow
,
"rotation"
,
0
,
180
).
start
();
}
else
{
// 当前是收起,箭头由上变为下
ObjectAnimator
.
ofFloat
(
ivArrow
,
"rotation"
,
-
180
,
0
).
start
();
}
}
class
ViewHolder
{
@Bind
(
R
.
id
.
iv_img
)
ImageView
ivImg
;
@Bind
(
R
.
id
.
tv_name
)
TextView
tvName
;
@Bind
(
R
.
id
.
tv_intro
)
TextView
tvIntro
;
@Bind
(
R
.
id
.
tv_price
)
TextView
tvPrice
;
ProductBean
productBean
;
public
ViewHolder
(
View
view
,
ProductBean
productBean
)
{
ButterKnife
.
bind
(
this
,
view
);
this
.
productBean
=
productBean
;
}
private
void
refreshUI
()
{
Glide
.
with
(
EllCustomBottomDemoActivity
.
this
)
.
load
(
productBean
.
getImg
())
.
placeholder
(
R
.
mipmap
.
ic_default
)
.
into
(
ivImg
);
tvName
.
setText
(
productBean
.
getName
());
tvIntro
.
setText
(
productBean
.
getIntro
());
tvPrice
.
setText
(
"¥"
+
productBean
.
getPrice
());
}
}
}
app/src/main/java/com/chaychan/powerfulviewlibrary/activity/EllDefaultBottomDemoActivity.java
0 → 100644
浏览文件 @
4cadce63
package
com.chaychan.powerfulviewlibrary.activity
;
import
android.os.Bundle
;
import
android.support.v7.app.AppCompatActivity
;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
com.bumptech.glide.Glide
;
import
com.chaychan.powerfulviewlibrary.R
;
import
com.chaychan.powerfulviewlibrary.bean.ProductBean
;
import
com.chaychan.viewlib.ExpandableLinearLayout
;
import
butterknife.Bind
;
import
butterknife.ButterKnife
;
/**
* ExpandableLinearLayout使用默认底部
*/
public
class
EllDefaultBottomDemoActivity
extends
AppCompatActivity
{
@Bind
(
R
.
id
.
ell_product
)
ExpandableLinearLayout
ellProduct
;
private
String
[]
imgUrls
=
new
String
[]{
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496728066&di=e5669ad80a241da52b03301ee0ba2749&imgtype=jpg&er=1&src=http%3A%2F%2Fimg.taopic.com%2Fuploads%2Fallimg%2F121017%2F240425-12101H2202646.jpg"
,
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496728145&di=c2ece04e1445eaf91fe3f3bf12ad1080&imgtype=jpg&er=1&src=http%3A%2F%2Fimg1.qunarzz.com%2Ftravel%2Fd6%2F1610%2F33%2F21ce9c91e70ab7b5.jpg_r_720x480x95_b2bcd2c5.jpg"
,
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496728182&di=1e06ea8b74863155b9d52736093beda8&imgtype=jpg&er=1&src=http%3A%2F%2Fe.hiphotos.baidu.com%2Fbainuo%2Fcrop%3D0%2C0%2C470%2C285%3Bw%3D470%3Bq%3D79%2Fsign%3Da8aa38e3b73533fae1f9c96e95e3d12f%2F6c224f4a20a44623b885148f9e22720e0df3d794.jpg"
,
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496133522433&di=1132cb36274a205f8ce30e21f47a37ee&imgtype=0&src=http%3A%2F%2Fi3.s2.dpfile.com%2Fpc%2Fb68a2a4316ae56373e83ce65ad7dfada%2528249x249%2529%2Fthumb.jpg"
,
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496728305&di=444bfe10c434c09043855e7a6a7f8ace&imgtype=jpg&er=1&src=http%3A%2F%2Fe.hiphotos.baidu.com%2Fbainuo%2Fcrop%3D0%2C0%2C470%2C285%3Bw%3D470%3Bq%3D99%2Fsign%3D65498f21374e251ff6b8beb89ab6e527%2F0df3d7ca7bcb0a46d662a6226c63f6246b60af6c.jpg"
};
private
String
[]
names
=
new
String
[]{
"炒河粉"
,
"炒米粉"
,
"隆江猪脚饭"
,
"烧鸭饭"
,
"叉烧饭"
};
private
String
[]
intros
=
new
String
[]{
"好吃又不腻"
,
"精选上等米粉,绝对好吃"
,
"隆江猪脚饭,肥而不腻,入口香爽,深受广东人民的喜爱"
,
"简单而美味,充满烧腊香味"
,
"色香味俱全"
};
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
page_ell_default_bottom_demo
);
ButterKnife
.
bind
(
this
);
ellProduct
.
removeAllViews
();
//清除所有的子View(避免重新刷新数据时重复添加)
//添加数据
for
(
int
i
=
0
;
i
<
5
;
i
++)
{
View
view
=
View
.
inflate
(
this
,
R
.
layout
.
item_product
,
null
);
ProductBean
productBean
=
new
ProductBean
(
imgUrls
[
i
],
names
[
i
],
intros
[
i
],
"12.00"
);
ViewHolder
viewHolder
=
new
ViewHolder
(
view
,
productBean
);
viewHolder
.
refreshUI
();
ellProduct
.
addItem
(
view
);
//添加子条目
}
}
class
ViewHolder
{
@Bind
(
R
.
id
.
iv_img
)
ImageView
ivImg
;
@Bind
(
R
.
id
.
tv_name
)
TextView
tvName
;
@Bind
(
R
.
id
.
tv_intro
)
TextView
tvIntro
;
@Bind
(
R
.
id
.
tv_price
)
TextView
tvPrice
;
ProductBean
productBean
;
public
ViewHolder
(
View
view
,
ProductBean
productBean
)
{
ButterKnife
.
bind
(
this
,
view
);
this
.
productBean
=
productBean
;
}
private
void
refreshUI
()
{
Glide
.
with
(
EllDefaultBottomDemoActivity
.
this
)
.
load
(
productBean
.
getImg
())
.
placeholder
(
R
.
mipmap
.
ic_default
)
.
into
(
ivImg
);
tvName
.
setText
(
productBean
.
getName
());
tvIntro
.
setText
(
productBean
.
getIntro
());
tvPrice
.
setText
(
"¥"
+
productBean
.
getPrice
());
}
}
}
app/src/main/java/com/chaychan/powerfulviewlibrary/activity/ExpandableLinearLayoutChooseActivity.java
浏览文件 @
4cadce63
...
...
@@ -17,15 +17,13 @@ public class ExpandableLinearLayoutChooseActivity extends AppCompatActivity {
//使用默认底部
public
void
useDefaultBottom
(
View
view
){
Intent
intent
=
new
Intent
(
this
,
ExpandableLinearLayoutDemoActivity
.
class
);
intent
.
putExtra
(
ExpandableLinearLayoutDemoActivity
.
USE_DEFAULT_BOTTOM
,
true
);
Intent
intent
=
new
Intent
(
this
,
EllDefaultBottomDemoActivity
.
class
);
startActivity
(
intent
);
}
//使用自定义底部
public
void
useCustomBottom
(
View
view
){
Intent
intent
=
new
Intent
(
this
,
ExpandableLinearLayoutDemoActivity
.
class
);
intent
.
putExtra
(
ExpandableLinearLayoutDemoActivity
.
USE_DEFAULT_BOTTOM
,
false
);
Intent
intent
=
new
Intent
(
this
,
EllCustomBottomDemoActivity
.
class
);
startActivity
(
intent
);
}
}
app/src/main/java/com/chaychan/powerfulviewlibrary/activity/ExpandableLinearLayoutDemoActivity.java
已删除
100644 → 0
浏览文件 @
658000de
package
com.chaychan.powerfulviewlibrary.activity
;
import
android.os.Bundle
;
import
android.support.v7.app.AppCompatActivity
;
import
android.view.View
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
com.chaychan.powerfulviewlibrary.R
;
import
com.chaychan.viewlib.ExpandableLinearLayout
;
public
class
ExpandableLinearLayoutDemoActivity
extends
AppCompatActivity
{
public
static
final
String
USE_DEFAULT_BOTTOM
=
"useDefaultBottom"
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
boolean
useDefaultBottom
=
getIntent
().
getBooleanExtra
(
USE_DEFAULT_BOTTOM
,
true
);
if
(
useDefaultBottom
){
//使用默认底部
setContentView
(
R
.
layout
.
page_ell_default_bottom_demo
);
}
else
{
setContentView
(
R
.
layout
.
page_ell_custom_bottom_demo
);
customeBottomUsage
();
}
}
/**
* 使用自定义底部的用法
*/
private
void
customeBottomUsage
()
{
final
ExpandableLinearLayout
ellProduct
=
(
ExpandableLinearLayout
)
findViewById
(
R
.
id
.
ell_product
);
RelativeLayout
rlBottom
=
(
RelativeLayout
)
findViewById
(
R
.
id
.
rl_bottom
);
final
TextView
tvTip
=
(
TextView
)
findViewById
(
R
.
id
.
tv_tip
);
//添加数据
for
(
int
i
=
0
;
i
<
4
;
i
++)
{
View
view
=
View
.
inflate
(
this
,
R
.
layout
.
item_product
,
null
);
ellProduct
.
addItem
(
view
);
}
ellProduct
.
setOnStateChangeListener
(
new
ExpandableLinearLayout
.
OnStateChangeListener
()
{
@Override
public
void
onStateChanged
(
boolean
isExpanded
)
{
if
(
isExpanded
){
//展开
tvTip
.
setText
(
"收起"
);
}
else
{
tvTip
.
setText
(
"展开"
);
}
}
});
rlBottom
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
ellProduct
.
toggle
();
}
});
}
}
app/src/main/java/com/chaychan/powerfulviewlibrary/bean/ProductBean.java
0 → 100644
浏览文件 @
4cadce63
package
com.chaychan.powerfulviewlibrary.bean
;
/**
* @author ChayChan
* @description: 商品的bean类
* @date 2017/5/30 14:06
*/
public
class
ProductBean
{
private
String
img
;
private
String
name
;
private
String
intro
;
private
String
price
;
public
ProductBean
(
String
img
,
String
name
,
String
intro
,
String
price
)
{
this
.
img
=
img
;
this
.
name
=
name
;
this
.
intro
=
intro
;
this
.
price
=
price
;
}
public
String
getImg
()
{
return
img
;
}
public
void
setImg
(
String
img
)
{
this
.
img
=
img
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getIntro
()
{
return
intro
;
}
public
void
setIntro
(
String
intro
)
{
this
.
intro
=
intro
;
}
public
String
getPrice
()
{
return
price
;
}
public
void
setPrice
(
String
price
)
{
this
.
price
=
price
;
}
}
app/src/main/res/drawable/shape_border.xml
0 → 100644
浏览文件 @
4cadce63
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:shape=
"rectangle"
>
<stroke
android:color=
"#666666"
android:width=
"0.5dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/layout/activity_expandable_text_view_demo.xml
浏览文件 @
4cadce63
...
...
@@ -14,11 +14,11 @@
android:ellipsize=
"end"
android:textColor=
"#666"
app:animDuration=
"200"
app:collapseDrawable=
"@mipmap/icon_
green
_arrow_down"
app:collapseDrawable=
"@mipmap/icon_
orange
_arrow_down"
app:collapseExpandGrarity=
"right"
app:collapseExpandTextColor=
"@color/main_color"
app:contentTextSize=
"12sp"
app:expandDrawable=
"@mipmap/icon_
green
_arrow_up"
app:expandDrawable=
"@mipmap/icon_
orange
_arrow_up"
app:maxCollapsedLines=
"4"
app:textCollapse=
"@string/collapse"
app:textExpand=
"@string/expand"
/>
...
...
app/src/main/res/layout/item_product.xml
浏览文件 @
4cadce63
...
...
@@ -3,60 +3,76 @@
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:padding=
"10dp"
>
<ImageView
android:layout_width=
"100dp"
android:layout_height=
"80dp"
android:layout_gravity=
"center"
android:scaleType=
"centerCrop"
android:src=
"@mipmap/ic_default"
/>
android:orientation=
"vertical"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:
layout_marginLeft=
"10dp
"
android:
orientation=
"vertical
"
android:
orientation=
"horizontal
"
android:
padding=
"10dp
"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"隆江猪脚饭"
<ImageView
android:id=
"@+id/iv_img"
android:layout_width=
"100dp"
android:layout_height=
"80dp"
android:layout_gravity=
"center"
android:scaleType=
"centerCrop"
android:src=
"@mipmap/ic_default"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:gravity=
"center"
android:orientation=
"horizontal"
android:layout_marginLeft=
"10dp"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"0dp"
android:id=
"@+id/tv_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"特别好吃哦,带回家啊时间还是健康的贺卡上空间的挥洒健康的贺卡姐啊上课黑色的健康哈空间"
android:textColor=
"#9f9f9f"
android:text=
"隆江猪脚饭"
/>
<
TextView
android:layout_width=
"
wrap_cont
ent"
<
LinearLayout
android:layout_width=
"
match_par
ent"
android:layout_height=
"wrap_content"
android:layout_margin
Left
=
"10dp"
android:
drawablePadding=
"5dp
"
android:
text=
"99.00
"
/
>
android:layout_margin
Top
=
"10dp"
android:
gravity=
"center
"
android:
orientation=
"horizontal
"
>
</LinearLayout>
<TextView
android:id=
"@+id/tv_intro"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"特别好吃哦,带回家啊时间还是健康的贺卡上空间的挥洒健康的贺卡姐啊上课黑色的健康哈空间"
android:textColor=
"#9f9f9f"
/>
<TextView
android:id=
"@+id/tv_price"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:drawablePadding=
"5dp"
android:text=
"12.00"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"0.5dp"
android:background=
"#D1D1D1"
/>
</LinearLayout>
app/src/main/res/layout/page_ell_custom_bottom_demo.xml
浏览文件 @
4cadce63
...
...
@@ -19,30 +19,33 @@
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:orientation=
"vertical"
app:arrowDownImg=
"@mipmap/clear_normal"
app:defaultItemCount=
"2"
app:expandText=
"查看更多"
app:hideText=
"收起内容"
app:useDefaultBottom=
"false"
>
</com.chaychan.viewlib.ExpandableLinearLayout>
<!--自定义底部-->
<RelativeLayout
android:id=
"@+id/rl_bottom"
android:layout_width=
"
match_par
ent"
android:layout_width=
"
wrap_cont
ent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:padding=
"10dp"
android:gravity=
"center"
android:padding=
"5dp"
android:background=
"@drawable/shape_border"
android:layout_marginTop=
"10dp"
>
<TextView
android:id=
"@+id/tv_tip"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerInParent=
"true"
android:text=
"展开"
android:text=
"点击展开"
android:gravity=
"center"
android:textColor=
"#666666"
android:textSize=
"12sp"
/>
...
...
@@ -50,9 +53,34 @@
android:id=
"@+id/iv_arrow"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerInParent=
"true"
android:layout_marginLeft=
"5dp"
android:layout_toRightOf=
"@id/tv_tip"
android:background=
"@mipmap/arrow_down_grey"
android:layout_centerVertical=
"true"
/>
</RelativeLayout>
<!--优惠、实付款-->
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:paddingLeft=
"10dp"
android:paddingRight=
"10dp"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"优惠: 4.00"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"实付款: 56.00元"
android:layout_alignParentRight=
"true"
/>
</RelativeLayout>
...
...
app/src/main/res/layout/page_ell_default_bottom_demo.xml
浏览文件 @
4cadce63
...
...
@@ -5,6 +5,12 @@
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<!--商品列表-->
<com.chaychan.viewlib.ExpandableLinearLayout
android:id=
"@+id/ell_product"
...
...
@@ -12,316 +18,38 @@
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:orientation=
"vertical"
app:defaultItemCount=
"
2
"
app:defaultItemCount=
"
3
"
app:expandText=
"查看更多"
app:hideText=
"收起内容"
app:hideText=
"收起更多"
app:useDefaultBottom=
"true"
app:arrowDownImg=
"@mipmap/arrow_down_grey"
>
<LinearLayout
</com.chaychan.viewlib.ExpandableLinearLayout>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:padding=
"10dp"
android:layout_marginTop=
"10dp"
android:paddingLeft=
"10dp"
android:paddingRight=
"10dp"
>
<ImageView
android:layout_width=
"100dp"
android:layout_height=
"80dp"
android:layout_gravity=
"center"
android:scaleType=
"centerCrop"
android:src=
"@mipmap/ic_default"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"隆江猪脚饭"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"特别好吃哦,带回家啊时间还是健康的贺卡上空间的挥洒健康的贺卡姐啊上课黑色的健康哈空间"
android:textColor=
"#9f9f9f"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:drawablePadding=
"5dp"
android:text=
"99.00"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:padding=
"10dp"
>
<ImageView
android:layout_width=
"100dp"
android:layout_height=
"80dp"
android:layout_gravity=
"center"
android:scaleType=
"centerCrop"
android:src=
"@mipmap/ic_default"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"隆江猪脚饭"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"特别好吃哦,带回家啊时间还是健康的贺卡上空间的挥洒健康的贺卡姐啊上课黑色的健康哈空间"
android:textColor=
"#9f9f9f"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:drawablePadding=
"5dp"
android:text=
"99.00"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:padding=
"10dp"
>
<ImageView
android:layout_width=
"100dp"
android:layout_height=
"80dp"
android:layout_gravity=
"center"
android:scaleType=
"centerCrop"
android:src=
"@mipmap/ic_default"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"隆江猪脚饭"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"特别好吃哦,带回家啊时间还是健康的贺卡上空间的挥洒健康的贺卡姐啊上课黑色的健康哈空间"
android:textColor=
"#9f9f9f"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:drawablePadding=
"5dp"
android:text=
"99.00"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:padding=
"10dp"
>
<ImageView
android:layout_width=
"100dp"
android:layout_height=
"80dp"
android:layout_gravity=
"center"
android:scaleType=
"centerCrop"
android:src=
"@mipmap/ic_default"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"隆江猪脚饭"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"特别好吃哦,带回家啊时间还是健康的贺卡上空间的挥洒健康的贺卡姐啊上课黑色的健康哈空间"
android:textColor=
"#9f9f9f"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:drawablePadding=
"5dp"
android:text=
"99.00"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
android:text=
"优惠: 4.00"
/>
<
LinearLayout
android:layout_width=
"
match_par
ent"
<
TextView
android:layout_width=
"
wrap_cont
ent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:padding=
"10dp"
>
<ImageView
android:layout_width=
"100dp"
android:layout_height=
"80dp"
android:layout_gravity=
"center"
android:scaleType=
"centerCrop"
android:src=
"@mipmap/ic_default"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"隆江猪脚饭"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"特别好吃哦,带回家啊时间还是健康的贺卡上空间的挥洒健康的贺卡姐啊上课黑色的健康哈空间"
android:textColor=
"#9f9f9f"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:drawablePadding=
"5dp"
android:text=
"99.00"
/>
</LinearLayout>
</LinearLayout>
android:text=
"实付款: 56.00元"
android:layout_alignParentRight=
"true"
/>
</Linear
Layout>
</Relative
Layout>
</com.chaychan.viewlib.Expandable
LinearLayout>
</
LinearLayout>
</ScrollView>
app/src/main/res/mipmap-hdpi/arrow_down_grey.png
0 → 100644
浏览文件 @
4cadce63
147 字节
viewlib/src/main/java/com/chaychan/viewlib/ExpandableLinearLayout.java
浏览文件 @
4cadce63
...
...
@@ -48,7 +48,7 @@ public class ExpandableLinearLayout extends LinearLayout implements View.OnClick
super
(
context
,
attrs
,
defStyleAttr
);
TypedArray
ta
=
context
.
obtainStyledAttributes
(
attrs
,
R
.
styleable
.
ExpandableLinearLayout
);
defaultItemCount
=
ta
.
getInt
(
R
.
styleable
.
ExpandableLinearLayout_defaultItemCount
,
0
);
defaultItemCount
=
ta
.
getInt
(
R
.
styleable
.
ExpandableLinearLayout_defaultItemCount
,
2
);
expandText
=
ta
.
getString
(
R
.
styleable
.
ExpandableLinearLayout_expandText
);
hideText
=
ta
.
getString
(
R
.
styleable
.
ExpandableLinearLayout_hideText
);
fontSize
=
ta
.
getDimension
(
R
.
styleable
.
ExpandableLinearLayout_tipTextSize
,
UIUtils
.
sp2px
(
context
,
14
));
...
...
@@ -61,7 +61,7 @@ public class ExpandableLinearLayout extends LinearLayout implements View.OnClick
}
/**
* 渲染完成时初始化view
* 渲染完成时初始化
默认底部
view
*/
@Override
protected
void
onFinishInflate
()
{
...
...
@@ -69,6 +69,9 @@ public class ExpandableLinearLayout extends LinearLayout implements View.OnClick
findViews
();
}
/**
* 初始化底部view
*/
private
void
findViews
()
{
bottomView
=
View
.
inflate
(
getContext
(),
R
.
layout
.
item_ell_bottom
,
null
);
ivArrow
=
(
ImageView
)
bottomView
.
findViewById
(
R
.
id
.
iv_arrow
);
...
...
viewlib/src/main/java/com/chaychan/viewlib/expandabletextview/ExpandableTextView.java
浏览文件 @
4cadce63
...
...
@@ -133,10 +133,10 @@ public class ExpandableTextView extends LinearLayout implements View.OnClickList
textExpand
=
typedArray
.
getString
(
R
.
styleable
.
ExpandableTextView_textExpand
);
if
(
mExpandDrawable
==
null
)
{
mExpandDrawable
=
ContextCompat
.
getDrawable
(
getContext
(),
R
.
mipmap
.
icon_
green
_arrow_up
);
mExpandDrawable
=
ContextCompat
.
getDrawable
(
getContext
(),
R
.
mipmap
.
icon_
orange
_arrow_up
);
}
if
(
mCollapseDrawable
==
null
)
{
mCollapseDrawable
=
ContextCompat
.
getDrawable
(
getContext
(),
R
.
mipmap
.
icon_
green
_arrow_down
);
mCollapseDrawable
=
ContextCompat
.
getDrawable
(
getContext
(),
R
.
mipmap
.
icon_
orange
_arrow_down
);
}
if
(
TextUtils
.
isEmpty
(
textCollapse
))
{
...
...
viewlib/src/main/res/layout/item_expand_collapse.xml
浏览文件 @
4cadce63
...
...
@@ -27,7 +27,7 @@
android:gravity=
"center"
android:textColor=
"@color/main_color"
android:drawablePadding=
"3dp"
tools:drawableRight=
"@mipmap/icon_
green
_arrow_up"
tools:drawableRight=
"@mipmap/icon_
orange
_arrow_up"
android:layout_marginTop=
"5dp"
/>
</LinearLayout>
\ No newline at end of file
viewlib/src/main/res/mipmap-xxxhdpi/icon_
green
_arrow_down.png
→
viewlib/src/main/res/mipmap-xxxhdpi/icon_
orange
_arrow_down.png
浏览文件 @
4cadce63
文件已移动
viewlib/src/main/res/mipmap-xxxhdpi/icon_
green
_arrow_up.png
→
viewlib/src/main/res/mipmap-xxxhdpi/icon_
orange
_arrow_up.png
浏览文件 @
4cadce63
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录