我有一个ListView,每个项目可以侧滑,以便另一个视图将滑入并取代它的位置。我已经将每个列表行实现为水平RelativeLayout中的两个视图。其中一个视图最初位于屏幕外。

问题是,我无法使屏幕外视图在滑入屏幕时呈现出来,除非它最初部分显示在屏幕上(如图中所示),而且这种技术似乎只有在不可见视图向右时才能工作。
有什么更好的方法来实现这一点吗?我试图在幻灯片期间调用.invalidate()和.setVisibility(可见的),但没有效果。
更新:
呈现的问题似乎是最初隐藏的视图总是宽度为0,即使我试图在滑动过程中对其进行编程更改。我在这两个视图周围使用一个RelativeLayout,以使可见视图完全适合屏幕。
--这是一个要求,视图可以被手指拖动。我目前在View.OnTouchListener中听View.OnTouchListener来实现这一点。
发布于 2013-08-30 09:51:12
您的问题相当模糊,因为您没有提供任何代码或滑入/退出视图的方法。如果您还没有使用ViewFlipper或ViewFlipper,这还不够吗?
您也可以使用http://developer.android.com/reference/android/widget/ViewSwitcher.htm获得滑动效果,这只允许2个视图,并通过动画将一个视图和另一个视图滑动--这可能更接近您所需要的,但也有一些小的缺点。视图滑块的工作方式类似于查看flipper (这让您有多个视图),下面是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在两个视图之间动画(在您的示例中,是幻灯片和幻灯片动画)。
/* Flipper animations */
yourFlipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.slide_in));
yourFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_out));
youFlipper.showNext();只需在列表视图的自定义单元格中放置视图flipper即可。这将处理隐藏和显示,这意味着您不需要处理可见的等等,尽管我很感激您可能无法获得完全相同的效果。
https://stackoverflow.com/questions/18529405
复制相似问题