- 随手拖动
- 展开闭合
- 动态更改文字
- 全屏拖动,也可以限定位置
- 响应点击事件
- 可通过xml配置颜色和内部样式
1.在工程根目录的build.gradle中添加依赖
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
2.在工程目录的build.gradle中添加依赖(查看最上面的版本号进行替换)
implementation 'com.github.XiaogegeChen:TrackView:2.1'
3.在xml中配置
<com.github.xiaogegechen.library.TrackView
android:id="@+id/track_view"
android:layout_width="150dp"
android:layout_height="50dp"
android:padding="3dp"
android:layout_margin="30dp"
app:inner_text="下一个回答"/>
app:inner_text 文字,可动态更改
app:inner_text_color 文字颜色
app:inner_text_size 文字尺寸,单位sp
app:inner_distance 是两个箭头之间的间距
app:inner_length 是每个箭头的边长
app:inner_stroke_width 是两个箭头的线条宽
app:blank_bottom 是底部留白的高度
app:blank_left 是左侧留白的高度
app:blank_right 是右侧留白的高度
app:blank_top 是顶部留白的高度
app:inner_content_color 是圆形内部的填充色
app:inner_stroke_color 是两个箭头的线条颜色
app:out_stroke_color 是外圆线条的颜色
app:out_stroke_width 是外圆线条的线宽
findViewById (R.id.open).setOnClickListener (new View.OnClickListener () {
@Override
public void onClick(View v) {
// 展开
trackView.open ();
}
});
findViewById (R.id.close).setOnClickListener (new View.OnClickListener () {
@Override
public void onClick(View v) {
// 闭合
trackView.close ();
}
});
findViewById (R.id.change).setOnClickListener (new View.OnClickListener () {
@Override
public void onClick(View v) {
// 动态更改文字
trackView.setText ("num:" + num);
num++;
}
});
final TrackView trackView = findViewById (R.id.track_view);
trackView.setOnClickListener (new View.OnClickListener () {
@Override
public void onClick(View v) {
textView.setText ("WORLD");
Toast.makeText (MainActivity.this, "click", Toast.LENGTH_SHORT).show ();
}
});
可参考 仿知乎可拖动悬停按钮
v2.0 增加新功能:
- 展开和关闭功能
- 文字显示功能 bug修复:
- 更改v1.1版本尺寸错误的bug
- 删除默认的padding 优化:
- 默认值优化,更见美观
v1.1
- 吸附到侧面时增加动画效果
- 修复之前版本中手指离开点在边界之外时悬浮球错误的移动的bug
- 优化细节
v2.1 优化:
- 使用@IntDef代替枚举
- 移除getPosition()方法
- 修复离手后位置瞬移的bug