我正在构建一个 Android 库(例如MyLibrary),它将添加到我公司的其他应用程序中。该库在文件中有一些依赖项,build.gradle如下所示:
dependencies{
implementation 'com.alimuzaffar.lib:pinentryedittext:2.0.6'
implementation "com.google.android.gms:play-services-auth-api-phone:17.3.0"
// ... other dependencies
}
Run Code Online (Sandbox Code Playgroud)
创建库后,我创建了一个 Github 包,因此我可以将其添加到s文件AppDemo中的另一个应用程序(例如),如下所示:AppDemobuild.gradle
dependencies{
implementation 'com.mycompany:mylibrary:1.2.3'
// other dependencies
}
Run Code Online (Sandbox Code Playgroud)
问题是我遇到依赖项错误,即缺少MyLibrarys 依赖项(在本例中为pinentryedittext,play-services-auth-api-phone如上面库的文件所示)。build.gradle我用谷歌搜索了这个问题并尝试了一些解决方案,例如Mobbeel fataar gradle 插件和其他一些类似的插件,但我无法使它们工作。有人可以帮我解决这个问题或者给我一个工作样本吗?任何帮助都将非常重要。
我有一个 RecyclerView(例如,rootRecyclerView),它可以根据某些 API 响应具有不同类型的行。我实现了其中一个是水平的ViewPager2,另一个是水平实现的 RecyclerView(例如,childRecyclerView)。
rootRecyclerView 垂直滑动,而 viewPager2 和 childRecyclerView 水平滑动。
问题:
当我在屏幕上滑动时,如果滑动是在 或 上viewPager2,childRecyclerView则滑动必须水平完全笔直。否则,它们不会水平滚动;滑动是由 进行的rootRecyclerView,因此您会看到垂直移动。
因此,发生这种情况是因为您的拇指会沿弯曲/圆形方向移动,从而在 X 轴和 Y 轴上产生移动,因此 rootRecyclerView 会拦截滑动,从而产生这种不愉快的用户体验。
我确实尝试解决这个问题,例如OnItemTouchListener向 childRecyclerView 添加一个,如下所示:
private float Y_BUFFER = ViewConfiguration.get(getContext())
.getScaledPagingTouchSlop(); // 10;
private float preX = 0f;
private float preY = 0f;
childRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
if(e.getAction()==MotionEvent.ACTION_DOWN){
childRecyclerView.getParent().requestDisallowInterceptTouchEvent(true);
}
if(e.getAction() == MotionEvent.ACTION_MOVE){
if (Math.abs(e.getX() …Run Code Online (Sandbox Code Playgroud)