带有捕捉功能的 Android 水平文本轮播

标签 android android-viewpager android-gallery horizontalscrollview

我想实现这样的布局:

enter image description here

在我显示多个 TextView 的位置,用户将能够水平滚动并且列表将对齐到中央项目(我将能够检索到)。

看起来我有几个选择,但没有一个令人满意。

首先,我研究了 Horizo​​ntalScrollView,但它只进行滚动,不进行捕捉。

Gallery 已弃用,但看起来最有前途 - 我只需要覆盖适配器中的 getView:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    TextView tv = convertView == null ? new TextView(getActivity()) : (TextView) convertView;
    tv.setText(getItem(position));
    tv.measure(0, 0);
    int width = tv.getMeasuredWidth();
    tv.setLayoutParams(new Gallery.LayoutParams(width + 100, 100));
    return tv;
}

其他可用的选项是 ViewPager,但看起来 ViewPager 更喜欢与 ViewPager 本身一样宽的 View 。

使用Gallery有什么问题吗?我真的不喜欢 Google 在没有提供等效替代品的情况下弃用 View,但我担心在未来的某些 Android 版本中它会消失。

最佳答案

据我所知,弃用类不会消失。它们只是不再受支持,所以如果类代码中存在错误,没有人会费心在未来版本的 API 中修复它。

如果 Gallery 无法正常工作,则网络上有几个水平 ListView 的实现 - 只需使用/扩展一个,这样您就可以得到类似于 smoothScrollToPosition(int position) 的东西。用于捕捉。

关于带有捕捉功能的 Android 水平文本轮播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19583227/

相关文章:

java - Android - 在相机和图库 Intents 之后裁剪会产生奇怪的结果

android - 在线音频流网站在 WebView 上无法正常工作

android - 通过 OTA 服务安装 Android 应用程序

android - 如何让 Jsoup 获取 URL 的桌面版本

android - RecyclerView ViewPager java.lang.NullPointerException android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left

Android 4.4.2 - 相机 uri 返回 null 并且裁剪功能不起作用?

android - Android 中 Camera 和 Camera2 的区别

android - 如何在onLoadFinish 回调方法中提交FragmentPagerAdapter 中的Fragment 事务?

android - 如何将 ViewPager 放入 Fragment 中?

android - 图库选定位置动画