Skip to content

Commit

Permalink
修复了不添加事件监听,点击链接会直接打开百度页面;新增了展开和收回按钮始终居右的功能;在demo中添加自定义设置显示文本的功能
Browse files Browse the repository at this point in the history
  • Loading branch information
MZCretin committed Sep 27, 2018
1 parent 4a56c03 commit 09e64a5
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 9 deletions.
24 changes: 22 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@
**实现类似微博内容,@用户,链接高亮,@用户和链接可点击跳转,可展开和收回的TextView。觉得好用别忘了star哦,你的star是对我最大的激励**

### 更新日志
+ 2018-09-22 23:32:16 更新,新增自定义规则解析,具体效果请查看效果图的第9条,依赖版本请使用tag版本v1.4,[查看说明](#新特性额外说明)
+ 2018-09-27 09:18:14 更新
+ 修复了不添加事件监听,点击链接会直接打开百度页面;
+ 在demo中添加自定义设置显示文本的功能,您可以自己设置需要显示的文本,然后查看对应的显示效果;
+ 新增了"展开"和"收回"按钮始终居右的功能,具体效果请查看效果图的第9条,依赖版本请使用tag版本v1.5,[查看说明](#新特性额外说明)

+ 2018-09-22 23:32:16 更新,新增自定义规则解析,具体效果请查看效果图的第10条,依赖版本请使用tag版本v1.4,[查看说明](#新特性额外说明)
```
implementation 'com.github.MZCretin:ExpandableTextView:v1.4'
```
Expand Down Expand Up @@ -107,7 +112,9 @@
<!--自定义规则的文字的颜色-->
<attr name="ep_self_color" format="color" />
<!--链接的图标-->
<attr name="ep_link_res" format="refere
<attr name="ep_link_res" format="reference"/>
<!--是否需要永远将展开或者收回放置在最后边-->
<attr name="ep_need_always_showright" format="boolean" />
//布局文件中使用 可选 也可以在代码中设置
<com.ctetin.expandabletextviewlibrary.ExpandableTextView
Expand Down Expand Up @@ -147,8 +154,11 @@
app:ep_need_self="true"
<!--自定义规则的文字的颜色-->
app:ep_self_color="@color/colorAccent"
<!--是否需要永远将展开或者收回放置在最后边-->
app:ep_need_always_showright="true"
<!--是否需要展开功能-->
app:ep_need_expand="false" />
```

+ java代码
Expand Down Expand Up @@ -182,6 +192,16 @@

### 新特性额外说明

### V1.5: 2018-09-27 09:20:28 更新了如下特性 版本v1.5+可以正常使用
如果你需要将"展开"和"收回"始终居右显示,你需要开启它,具体效果可以参考效果图第9条
```
//需要先开启始终靠右显示的功能
views[8].setNeedAlwaysShowRight(true);
//或者在xml中开启
app:ep_need_always_showright="true"
```

### V1.4:2018-09-22 23:32:16 更新了如下特性 版本v1.4+可以正常使用

如果你觉得目前@用户和网页链接两种形式并不能完全满足你的业务,那么我提供了一个新的自定义规则给你,让你可以更加灵活的去适应自己的业务。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
public boolean onOptionsItemSelected(MenuItem item) {
View view = LayoutInflater.from(this).inflate(R.layout.dialog_input, null);
new AlertDialog.Builder(this)
.setMessage("请输入新内容")
.setMessage("请输入将要替换的内容:")
.setTitle("提示")
.setView(view)
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,19 @@

import android.content.Context;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.Toast;

import com.cretin.www.expandabletextview.model.ViewModel;
Expand All @@ -28,6 +33,7 @@ public class ShowInRecyclerViewActivity extends AppCompatActivity {

//是需要保存展开或收回状态
private boolean flag = true;
private String content;

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

Expand All @@ -40,28 +46,35 @@ protected void onCreate(Bundle savedInstanceState) {
floatingActionButton = findViewById(R.id.float_btn);

list = new ArrayList<>();
changeStateAndSetData();
changeStateAndSetData(null,false);

floatingActionButton.setOnClickListener(v -> changeStateAndSetData());
floatingActionButton.setOnClickListener(v -> changeStateAndSetData(content,true));
}

/**
* 切换状态
*/
private void changeStateAndSetData() {
flag = !flag;
private void changeStateAndSetData(String content, boolean change) {
if (change)
flag = !flag;
list.clear();
if (flag) {
Toast.makeText(this, "保留之前的展开或收回状态", Toast.LENGTH_SHORT).show();
floatingActionButton.setImageResource(R.mipmap.green);
for (int i = 0; i < 50; i++) {
list.add(new ViewModelWithFlag("第" + (i + 1) + "条数据:" + yourText));
if (TextUtils.isEmpty(content))
list.add(new ViewModelWithFlag("第" + (i + 1) + "条数据:" + yourText));
else
list.add(new ViewModelWithFlag("第" + (i + 1) + "条数据:" + content));
}
} else {
Toast.makeText(this, "不保留之前的展开或收回状态", Toast.LENGTH_SHORT).show();
floatingActionButton.setImageResource(R.mipmap.gray);
for (int i = 0; i < 50; i++) {
list.add(new ViewModel("第" + (i + 1) + "条数据:" + yourText));
if (TextUtils.isEmpty(content))
list.add(new ViewModel("第" + (i + 1) + "条数据:" + yourText));
else
list.add(new ViewModel("第" + (i + 1) + "条数据:" + content));
}
}
adapter = new MyRecyclerViewAdapter(this, list);
Expand Down Expand Up @@ -127,4 +140,33 @@ private RecyclerHolder(View itemView) {
}
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_layout, menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
View view = LayoutInflater.from(this).inflate(R.layout.dialog_input, null);
new AlertDialog.Builder(this)
.setMessage("请输入将要替换的内容:")
.setTitle("提示")
.setView(view)
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.setPositiveButton("确定", (dialog, which) -> {
EditText editText = view.findViewById(R.id.ed_content);
String string = editText.getText().toString();
if (TextUtils.isEmpty(string)) {
Toast.makeText(this, "内容不能为空", Toast.LENGTH_SHORT).show();
return;
}
content = string;
changeStateAndSetData(string,false);
dialog.dismiss();
})
.show();
return super.onOptionsItemSelected(item);
}
}
Binary file modified extra/demo.apk
Binary file not shown.
Binary file modified extra/demo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 09e64a5

Please sign in to comment.