# AdvancedTextView
**Repository Path**: mevermore/AdvancedTextView
## Basic Information
- **Project Name**: AdvancedTextView
- **Description**: 一个增强的TextView库,可以实现文字的两端对齐,文字竖排,以及自定义的弹出菜单
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-01-17
- **Last Updated**: 2025-08-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Library
## README
# AdvancedTextView
这是一个增强的TextView库。可以实现文字的两端对齐,文字竖排,以及自定义的弹出菜单。
具体介绍请移步博客:
https://blog.csdn.net/devilist/article/details/54911641
https://blog.csdn.net/devilist/article/details/79236665
本库目前提供两个控件 SelectableTextView 和 VerticalTexview。
# 1. SelectableTextView

在布局中引用:
```
// 是否启用两端对齐
```
也可以在代码中设置:
```
selectableTextView.setTextJustify(true); // 是否启用两端对齐 默认启用
selectableTextView.setForbiddenActionMenu(false); // 是否禁用自定义ActionMenu 默认启用
selectableTextView.setTextHighlightColor(0xff48543e); // 文本高亮色
```
注意:在代码中调用上述三个方法后需要 调用 inviladite() 或 postInviladite()方法通知View重绘
设置ActionMenu菜单点击监听:
```
selectableTextView.setCustomActionMenuCallBack(new CustomActionMenuCallBack() {
@Override
public boolean onCreateCustomActionMenu(ActionMenu menu) {
menu.setActionMenuBgColor(0xff666666); // ActionMenu背景色
menu.setMenuItemTextColor(0xffffffff); // ActionMenu文字颜色
List titleList = new ArrayList<>();
titleList.add("翻译");
titleList.add("分享");
titleList.add("分享");
menu.addCustomMenuItem(titleList); // 添加菜单
return false; // 返回false,保留默认菜单(全选/复制);返回true,移除默认菜单
}
@Override
public void onCustomActionItemClicked(String itemTitle, String selectedContent) {
Toast.makeText(this, "ActionMenu: " + itemTitle, Toast.LENGTH_SHORT).show();
}
});
```
# 2. VerticalTextView

在布局中引用:
```
// 下划线偏移量
```
在代码中设置:
```
vtv_text_ltr.setLeftToRight(true) // 文字是否从左向右排版,默认从右向左排版
.setLineSpacingExtra(10) // 行间距
.setCharSpacingExtra(2) // 字符间距
.setUnderLineText(true) // 是否显示下划线,默认不显示
.setShowActionMenu(true) // 是否开启ActionMenu,默认关闭
.setUnderLineColor(0xffCEAD53) // 下划线颜色
.setUnderLineWidth(1.0f) // 下划线线宽
.setUnderLineOffset(3) // 下划线偏移量
.setTextHighlightColor(0xffCEAD53) // 选中文字高亮色
.setCustomActionMenuCallBack(this); // ActionMenu菜单点击监听
```
注意:在代码中调用上述方法后需要 调用 requestLayout()方法通知View重新布局
设置ActionMenu菜单点击监听和SelectableTextView一样。