Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
MZCretin committed May 20, 2019
1 parent 3ae92c3 commit f95384d
Show file tree
Hide file tree
Showing 11 changed files with 198 additions and 39 deletions.
Binary file modified .idea/caches/gradle_models.ser
Binary file not shown.
3 changes: 3 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 30 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@

### 更新日志

+ 2019-05-20 15:14:04更新,如果你需要展示链接但是不想让链接自动转换成"网页链接"的形式,你可以禁用自动转换功能;如果你希望知道是否满足展开/收起的条件,添加一个监听就好了,依赖版本请使用tag版本1.6.0

+ 2019-03-14 10:25:57更新,修复在有些手机上偶尔会出现白屏,加载不出内容的情况,依赖版本请使用tag版本1.5.3

```java
implementation 'com.github.MZCretin:ExpandableTextView:v1.5.3'
implementation 'com.github.MZCretin:ExpandableTextView:v1.6.0'
```

+ 2018-10-09 17:20:45 更新,新增对展开和回收的点击事件监听,依赖版本请使用tag版本v1.5.2
Expand All @@ -21,6 +23,7 @@
```

+ 2018-09-27 09:18:14 更新

+ 修复了不添加事件监听,点击链接会直接打开百度页面;
+ 在demo中添加自定义设置显示文本的功能,您可以自己设置需要显示的文本,然后查看对应的显示效果;
+ 新增了"展开""收回"按钮始终居右的功能,具体效果请查看效果图的第9条,依赖版本请使用tag版本v1.5,[查看说明](#新特性额外说明)
Expand Down Expand Up @@ -64,7 +67,7 @@

### 实现效果:

<img src="./extra/demo.png"/>
<img src="./extra/demo.jpg"/>

#### 下面是RecyclerView中的样式,可以保留之前展开和收回的状态

Expand Down Expand Up @@ -116,6 +119,8 @@
<attr name="ep_need_link" format="boolean" />
<!--是否需要动画-->
<attr name="ep_need_animation" format="boolean" />
<!--是否需要将连接转换成网页链接显示 默认为true-->
<attr name="ep_need_convert_url" format="boolean" />
<!--是否需要自定义规则-->
<attr name="ep_need_self" format="boolean" />
<!--收起的文案-->
Expand Down Expand Up @@ -173,6 +178,8 @@
app:ep_contract_color="@color/colorAccent"
<!--@用户的文字的颜色-->
app:ep_mention_color="@color/colorAccent"
<!--是否需要将连接转换成网页链接显示-->
app:ep_need_convert_url="false"
<!--是否需要自定义规则-->
app:ep_need_self="true"
<!--自定义规则的文字的颜色-->
Expand Down Expand Up @@ -218,11 +225,32 @@
} else {
Toast.makeText(MainActivity.this, "展开操作", Toast.LENGTH_SHORT).show();
}
});
//监听是否初始化完成 在这里可以获取是否支持展开/收回
expandableTextView.setOnGetLineCountListener(new ExpandableTextView.OnGetLineCountListener() {
@Override
public void onGetLineCount(int lineCount, boolean canExpand) {
Toast.makeText(MainActivity.this, "行数:" + lineCount + " 是否满足展开条件:" + canExpand, Toast.LENGTH_SHORT).show();
}
});
```

### 新特性额外说明

### V1.6:2019-05-20 15:19:10 更新了如下特性 版本v1.6+可以正常使用

如果你需要展示链接但是不想让链接自动转换成"网页链接"的形式,你可以禁用自动转换功能,具体效果可以参考效果图第11条;如果你希望知道是否满足展开/收起的条件,添加一个监听就好了:

```java
//监听是否初始化完成 在这里可以获取是否支持展开/收回
views[10].setOnGetLineCountListener(new ExpandableTextView.OnGetLineCountListener() {
@Override
public void onGetLineCount(int lineCount, boolean canExpand) {
Toast.makeText(MainActivity.this, "行数:" + lineCount + " 是否满足展开条件:" + canExpand, Toast.LENGTH_SHORT).show();
}
});
```

### V1.5: 2018-09-27 09:20:28 更新了如下特性 版本v1.5+可以正常使用
如果你需要将"展开"和"收回"始终居右显示,你需要开启它,具体效果可以参考效果图第9条
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ public class MainActivity extends AppCompatActivity {
"3,5;6,9;10,11;14,15;20,21",
"3,5;6,9;10,11;14,16;21,22",
"3,5;6,9;10,11;14,15;20,21",
"4,6;7,10;11,12;15,16;21,22"
"4,6;7,10;11,12;15,16;21,22",
"4,6;7,10;11,12;15,16;24,29;40,45"
};

private TextView tvTips00;
Expand All @@ -66,8 +67,8 @@ public class MainActivity extends AppCompatActivity {
};

private void initView() {
views = new ExpandableTextView[10];
tips = new TextView[10];
views = new ExpandableTextView[11];
tips = new TextView[11];
views[0] = findViewById(R.id.ep_01);
views[1] = findViewById(R.id.ep_02);
views[2] = findViewById(R.id.ep_03);
Expand All @@ -78,6 +79,7 @@ private void initView() {
views[7] = findViewById(R.id.ep_08);
views[8] = findViewById(R.id.ep_09);
views[9] = findViewById(R.id.ep_10);
views[10] = findViewById(R.id.ep_11);
tips[0] = findViewById(R.id.tv_tips01);
tips[1] = findViewById(R.id.tv_tips02);
tips[2] = findViewById(R.id.tv_tips03);
Expand All @@ -88,6 +90,7 @@ private void initView() {
tips[7] = findViewById(R.id.tv_tips08);
tips[8] = findViewById(R.id.tv_tips09);
tips[9] = findViewById(R.id.tv_tips10);
tips[10] = findViewById(R.id.tv_tips11);
tvTips00 = findViewById(R.id.tv_tips00);
}

Expand All @@ -99,7 +102,7 @@ protected void onCreate(Bundle savedInstanceState) {
initView();

setTips();
String yourText = " 我所认识的中国,强大、友好 --习大大。@奥特曼 “一带一路”经济带带动了沿线国家的经济发展,促进我国与他国的友好往来和贸易发展,可谓“双赢”,Github地址。http://www.baidu.com 自古以来,中国以和平、友好的面孔示人。汉武帝派张骞出使西域,开辟丝绸之路,增进与西域各国的友好往来。http://www.baidu.com 胡麻、胡豆、香料等食材也随之传入中国,汇集于中华美食。@RNG 漠漠古道,驼铃阵阵,这条路奠定了“一带一路”的基础,让世界认识了中国。";
String yourText = " 我所认识的中国,http://www.baidu.com 强大、友好 --习大大。@奥特曼 “一带一路”经济带带动了沿线国家的经济发展,促进我国与他国的友好往来和贸易发展,可谓“双赢”,Github地址。 自古以来,中国以和平、友好的面孔示人。汉武帝派张骞出使西域,开辟丝绸之路,增进与西域各国的友好往来。http://www.baidu.com 胡麻、胡豆、香料等食材也随之传入中国,汇集于中华美食。@RNG 漠漠古道,驼铃阵阵,这条路奠定了“一带一路”的基础,让世界认识了中国。";
// String yourText = "1、哈哈\n2、哈哈\n3、哈哈\n4、哈哈\n5、哈哈\n6、哈哈\n7、哈哈\n8、哈哈\n9、哈哈\n1、哈哈";
// String yourText = "1\n2考虑\n3考虑\n4考虑\n5考虑\n6考虑";

Expand Down Expand Up @@ -181,16 +184,28 @@ private void setContent(String yourText, boolean d) {
* app:ep_need_self="true"
* views[8].setNeedSelf(true);
*/
String yourText1 = "";
if (d) {
yourText = " 我所认识的中国,强大、友好,[--习大大](schema_jump_userinfo)。@奥特曼 “一带一路”经济带带动了沿线国家的经济发展,促进我国与他国的友好往来和贸易发展,可谓“双赢”,[Github地址](https://github.com/MZCretin/ExpandableTextView)。http://www.baidu.com 自古以来,中国以和平、友好的面孔示人。汉武帝派张骞出使西域,开辟丝绸之路,增进与西域各国的友好往来。http://www.baidu.com 胡麻、胡豆、香料等食材也随之传入中国,汇集于中华美食。@RNG 漠漠古道,驼铃阵阵,这条路奠定了“一带一路”的基础,让世界认识了中国。";
yourText1 = " 我所认识的中国,强大、友好,[--习大大](schema_jump_userinfo)。[http://www.baidu.com](http://www.baidu.com),@奥特曼 “一带一路”经济带带动了沿线国家的经济发展,促进我国与他国的友好往来和贸易发展,可谓“双赢”,[Github地址](https://github.com/MZCretin/ExpandableTextView)。http://www.baidu.com 自古以来,中国以和平、友好的面孔示人。汉武帝派张骞出使西域,开辟丝绸之路,增进与西域各国的友好往来。http://www.baidu.com 胡麻、胡豆、香料等食材也随之传入中国,汇集于中华美食。@RNG 漠漠古道,驼铃阵阵,这条路奠定了“一带一路”的基础,让世界认识了中国。";
} else {
tips[9].setText("10、正常带链接和@用户,有展开,有收回功能,带自定义规则");
setTips();
}
views[9].setContent(yourText);
views[9].setContent(yourText1);
views[9].setLinkClickListener(linkClickListener);
//需要先开启
views[9].setNeedSelf(true);

//11、正常带链接和@用户,有展开,有收回功能,文本中链接不转换成网页链接的文本提示
views[10].setContent(yourText);
views[10].setLinkClickListener(linkClickListener);
//监听是否初始化完成 在这里可以获取是否支持展开/收回
views[10].setOnGetLineCountListener(new ExpandableTextView.OnGetLineCountListener() {
@Override
public void onGetLineCount(int lineCount, boolean canExpand) {
Toast.makeText(MainActivity.this, "行数:" + lineCount + " 是否满足展开条件:" + canExpand, Toast.LENGTH_SHORT).show();
}
});
}

/**
Expand Down
78 changes: 52 additions & 26 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="ExpandTextView包含如下功能:\n1、实现类似微博@好友的功能,对@内容进行高亮显示,可以点击\n2、实现链接的高亮显示,可以点击,并且对链接进行原文隐藏\n3、实现内容超过指定行数折叠效果,点击可以展开内容\n4、在原文内容末尾添加指定内容,比如时间串,详情见效果图\n5、自定义高亮规则,实现自定义位置点击\n6、RecyclerView中可记住展开和收回状态\n7、可固定展开和收回按钮在最右边或紧贴内容后边\n\n联系我:\[email protected]\n\n博客地址:\nhttps://www.jianshu.com/p/5519fbab6907\n\nGithub地址(您的star是对我最大的鼓励):\nhttps://github.com/MZCretin/ExpandableTextView\n"
android:textColor="#333333"
android:textSize="14sp" />
Expand All @@ -30,10 +30,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="特别:在RecyclerView中的使用(ListView类似)"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -44,10 +44,10 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="20dp"
android:paddingLeft="15dp"
android:paddingTop="20dp"
android:paddingRight="15dp"
android:paddingTop="20dp">
android:paddingBottom="20dp">

<TextView
android:layout_width="match_parent"
Expand All @@ -71,10 +71,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="1、正常带链接和@用户,没有展开和收回功能"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -93,10 +93,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="2、正常带链接,不带@用户,有展开和收回功能,有切换动画,有展开和回收的动作监听"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -119,10 +119,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="3、正常不带链接,不带@用户,有展开和收回功能,有切换动画"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -146,10 +146,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="4、正常带链接和@用户,有展开和收回功能,有切换动画"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -171,10 +171,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="5、正常带链接和@用户,有展开和收回功能,没有切换动画"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -196,10 +196,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="6、正常带链接和@用户,有展开,没有收回功能"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -221,10 +221,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="7、正常带链接和@用户,有展开,有收回功能,带附加内容(比如时间)"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -246,10 +246,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="8、正常带链接和@用户,有展开,没有收回功能,带附加内容(比如时间)"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -271,10 +271,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="9、正常带链接和@用户,有展开,有收回功能,有'展开'和'收起'始终靠右显示的功能"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -297,10 +297,10 @@
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="10、正常带链接和@用户,有展开,有收回功能,带自定义规则(解析[标题](规则)并处理,例如对一些字段进行自定义处理,比如文字中的'--习大大' 和 'Gitbub地址')"
android:textColor="#666666"
android:textSize="14sp" />
Expand All @@ -317,6 +317,32 @@
app:ep_need_expand="true"
app:ep_need_self="true" />

<TextView
android:id="@+id/tv_tips11"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#e6e6e6"
android:lineSpacingExtra="4dp"
android:paddingLeft="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="11、正常带链接和@用户,有展开,有收回功能,文本中链接不转换成网页链接的文本提示,监听初始化完成"
android:textColor="#666666"
android:textSize="14sp" />

<com.ctetin.expandabletextviewlibrary.ExpandableTextView
android:id="@+id/ep_11"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:lineSpacingExtra="5dp"
android:textSize="14sp"
app:ep_max_line="5"
app:ep_need_contract="true"
app:ep_need_convert_url="false"
app:ep_need_expand="true" />

<LinearLayout
android:id="@+id/ll_ad"
android:layout_width="match_parent"
Expand Down
Loading

0 comments on commit f95384d

Please sign in to comment.