diff --git a/README.md b/README.md index f2ec90e..9a54864 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,9 @@ CSDN:[http://blog.csdn.net/iamdingruihaha/article/details/71422269](http://blog.    hsMain.setAnRightOffset();//向右移动一个单元 hsMain.getSelectedString();//获得被选中的文本 - + + hsMain.setOnSlideListener();//当左右滑动时,获取当前所选项的指针 + ``` diff --git a/app/src/main/java/com/example/horizontalscrollselectedview/MainActivity.java b/app/src/main/java/com/example/horizontalscrollselectedview/MainActivity.java index e74d66f..61ce052 100644 --- a/app/src/main/java/com/example/horizontalscrollselectedview/MainActivity.java +++ b/app/src/main/java/com/example/horizontalscrollselectedview/MainActivity.java @@ -11,7 +11,7 @@ import java.util.ArrayList; import java.util.List; -public class MainActivity extends AppCompatActivity implements View.OnClickListener { +public class MainActivity extends AppCompatActivity implements View.OnClickListener, HorizontalselectedView.OnHorizontalViewSlideListener { private View leftImageView; private View rightImageView; @@ -19,6 +19,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe private Button btMain; List strings = new ArrayList(); private TextView tvMain; + private TextView tvMainCurrent; @Override protected void onCreate(Bundle savedInstanceState) { @@ -42,11 +43,12 @@ private void initView() { rightImageView = findViewById(R.id.iv_right); btMain = ((Button) findViewById(R.id.bt_main)); tvMain = ((TextView) findViewById(R.id.tv_main)); - + tvMainCurrent = ((TextView) findViewById(R.id.tv_main_current)); leftImageView.setOnClickListener(this); rightImageView.setOnClickListener(this); btMain.setOnClickListener(this); + hsMain.setOnSlideListener(this); } @@ -68,4 +70,9 @@ public void onClick(View view) { break; } } + + @Override + public void currentIndex(int index) { + tvMainCurrent.setText("所选项指针:" + index); + } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index da9b14c..57434a3 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -84,4 +84,15 @@ android:layout_marginTop="20dp" android:background="@color/gray" /> + + diff --git a/horizontalselectedviewlibrary/src/main/java/com/example/horizontalselectedviewlibrary/HorizontalselectedView.java b/horizontalselectedviewlibrary/src/main/java/com/example/horizontalselectedviewlibrary/HorizontalselectedView.java index 71c2d27..94f4edd 100644 --- a/horizontalselectedviewlibrary/src/main/java/com/example/horizontalselectedviewlibrary/HorizontalselectedView.java +++ b/horizontalselectedviewlibrary/src/main/java/com/example/horizontalselectedviewlibrary/HorizontalselectedView.java @@ -50,6 +50,7 @@ public class HorizontalselectedView extends View { private int textWidth = 0; private int textHeight = 0; private int centerTextHeight = 0; + private OnHorizontalViewSlideListener horizontalView; public HorizontalselectedView(Context context) { @@ -120,6 +121,10 @@ public boolean onTouchEvent(MotionEvent event) { anOffset = 0; n = n - 1; downX = scrollX; + // 回调 + if (null != horizontalView) { + horizontalView.currentIndex(n); + } } } } else { @@ -131,6 +136,10 @@ public boolean onTouchEvent(MotionEvent event) { anOffset = 0; n = n + 1; downX = scrollX; + // 回调 + if (null != horizontalView) { + horizontalView.currentIndex(n); + } } } } @@ -162,6 +171,10 @@ protected void onDraw(Canvas canvas) { if (n >= 0 && n <= strings.size() - 1) {//加个保护;防止越界 String s = strings.get(n);//得到被选中的文字 + // 回调 + if (null != horizontalView) { + horizontalView.currentIndex(n); + } /** * 得到被选中文字 绘制时所需要的宽高 */ @@ -251,4 +264,19 @@ public String getSelectedString() { } return null; } + + /** + * 设置回调函数 + * @param horizontalView + */ + public void setOnSlideListener(OnHorizontalViewSlideListener horizontalView) { + this.horizontalView = horizontalView; + } + + /** + * 回调函数 + */ + public interface OnHorizontalViewSlideListener { + void currentIndex(int index); + } }