gpt4 book ai didi

安卓 ListView : slide-in views not shown

转载 作者:行者123 更新时间:2023-11-30 03:24:17 27 4
gpt4 key购买 nike

我有一个 ListView,其中每个项目都可以横向滑动,以便另一个 View 滑入并取代它。我已将每个列表行实现为水平 RelativeLayout 中的两个 View 。其中一个 View 最初位于屏幕之外。 enter image description here

问题是当滑入屏幕时,我无法使离屏 View 变为渲染状态,除非它最初部分在屏幕上(如图所示),甚至这种技术似乎仅当不可见 View 位于右侧时才起作用。

有没有更好的方法来实现这一点?我曾尝试在滑动过程中调用 .invalidate() 和 .setVisibility(VISIBLE),但没有效果。

更新:

问题 渲染似乎是最初隐藏的 View 始终具有宽度 0,即使我尝试在滑动期间以编程方式更改它也是如此。我在两个 View 周围使用 RelativeLayout 以使可见 View 完全适合屏幕。

要求可以用手指拖动 View 。我目前在 View.OnTouchListener 中监听 MotionEvents 以完成此操作。

最佳答案

您的问题很含糊,因为您没有提供任何代码或滑入/滑出 View 的方法。如果您还没有使用 View Switcher 或 ViewFlipper,这还不够吗?

您还可以使用 http://developer.android.com/reference/android/widget/ViewSwitcher.htm 获得滑动效果,这只允许 2 个 View ,并且会通过动画将一个 View 滑入另一个 View - 这可能更接近您的要求,但有一些小缺点。 View slider 以类似于 view flipper 的方式工作(这让你有多个 View ),下面是 viewflipper 的一些示例代码。

http://developer.android.com/reference/android/widget/ViewFlipper.html

<ViewFlipper
android:id="@+id/flipper"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

YOUR VIEWS

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

YOUR VIEWS

</LinearLayout>

</ViewFlipper>

然后您可以附加自己的动画并调用 showNext 滑动或其他操作以在两个 View 之间设置动画(在您的例子中,滑入和滑出动画)

/* Flipper animations */
yourFlipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.slide_in));
yourFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_out));

youFlipper.showNext();

只需将 View 翻转器放入 ListView 的自定义单元格中。这会处理隐藏和显示,这意味着您不必处理可见等问题,尽管我知道您可能无法获得完全相同的预期效果。

关于安卓 ListView : slide-in views not shown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18529405/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com