1

这是我的应用程序的布局,当您滚动查看不同的专辑(紫色)时,我希望专辑和歌曲(红色和蓝色)水平移动。但是,我希望歌曲(蓝色)独立垂直移动以滚动专辑中的歌曲。

到目前为止,我的编码看起来和你期望的一样......

<LinearLayout
   <HorizontalScrollView
       <LinearLayout
           <LinearLayout (This layout is so the album cover is displayed correctly)
               <ImageView
               <ScrollView
                 <LinearLayout
                     <TextView   (Songs)
                     <TextView
                     <TextView
                     <TextView

当我垂直滚动歌曲时会出现我的问题。当我垂直滚动时,如果我将手指向左或向右移动,它会检测到 Horizo​​ntalScrollView 并停止垂直滚动。我能做些什么来阻止这种情况?如果我无能为力,除了 Horizo​​ntalScrollView 我还能用什么?

谢谢,

-史蒂文

在此处输入图像描述

4

1 回答 1

2

我会说从根本上你需要改变你的布局。首先,每张专辑都有不同数量的歌曲,因此最好制作歌曲列表而ListView不是手工制作ScrollView。接下来,对于专辑,我将使用 aViewPager并附加 a ViewPager#OnPageChangeListener,当页面更改时,歌曲列表也会更新。现在要修复您当前的 xml,根据我的理解,您希望专辑从左到右移动,您需要这样做:

<LinearLayout
   <HorizontalScrollView
       <LinearLayout
           <LinearLayout (This layout is so the album cover is displayed correctly)
               <ImageView
   </HorizontalScrollView> <!-- end the album HSV here --!>
               <ScrollView
                 <LinearLayout
                     <TextView   (Songs)
                     <TextView
                     <TextView
                     <TextView
               </ScrollView>

发生的事情是你无缘无故地将垂直包裹ScrollView在你的身上。HorizantleScrollView现在,如果您想要某种程度的左/右拖船会导致显示下一页的整个页面 - 我会切换到ViewPager. (如果您不确定我的意思,请查看 Google Play。它们是垂直ListViews的,您可以左右拉动新页面...

于 2012-07-25T00:02:00.763 回答