【问题标题】:Android complex layout with scrollview带有滚动视图的Android复杂布局
【发布时间】:2015-01-30 06:34:36
【问题描述】:

我从设计师那里得到的。删除了一些不必要的信息。有人会建议我如何准确地实现这个设计。从android布局设计的角度来看,我们需要一个VerticalScrollView/ListView,里面有很多Horizo​​ntalScrollView。我知道 ListView 不能放在 ScrollView 内,反之亦然。所以我们只能在 VScrollview 中使用 HScrollview。 对我来说,此布局中最难的部分是箭头(标记为红色)。如果有人在此布局的任何方面帮助我,我将不胜感激。

提前致谢。

【问题讨论】:

  • 从这张图片我猜不出工作流程。第一个(女士)图像到底在哪里(在列表视图或网格视图或简单布局中)?
  • 第一个图像不是任何滚动视图的一部分。你可以丢弃这个。我标记了垂直滚动视图和水平滚动视图。
  • 您可以尝试 ListPopupWindow developer.android.com/reference/android/widget/… 或带有滚动视图内容的 PopupWindow developer.android.com/reference/android/widget/PopupWindow.html
  • @mahbub.kuet 箭头指示的女士是动态的吗?
  • @ParthaChakraborty 请查看更新的布局图片。

标签: android android-layout android-listview android-view android-scrollview


【解决方案1】:

这不是一个答案,但可能会给你一个想法。

对于箭头部分,为视图添加箭头并使其仅对所需的箭头可见,同时隐藏其他箭头,即一次只有一个箭头可见,而其他箭头将被隐藏。您可以通过代码执行此操作。

记住箭头并不总是在中心,你必须根据瓷砖的位置来调整它..

【讨论】:

    【解决方案2】:

    我会使用带有水平滚动视图的列表视图作为列表项。 在 Scrollview 中,我将填充每个人的信息,以便: 第一项在顶部获得该静态箭头,但其他项将只是一个视图。 对于选定的用户配置文件,箭头位于底部。 带有分隔线的 Listview 应该会给您想要的外观。

    注意:如果您的汉堡菜单假定打开侧滑,水平滚动可能会很棘手。

    【讨论】:

      【解决方案3】:

      在您的布局中,创建一个垂直滚动视图并在 LinearLayout 中添加 HorizontalListView,以从左到右滚动项目。垂直滚动视图将确保您可以在一系列水平列表中上下滚动。

      例如:

       <ScrollView
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical" >
      
        <LinearLayout...
             <HListView....
               ....
            />
        </LinearLayout>
      </ScrollView>
      

      【讨论】:

        【解决方案4】:

        只需使用 ListView 并将 Horizo​​ntalListView/ViewPager 作为一项放入其中。 Horizo​​ntalListView 可以在 Github 或其他地方找到。

        关于箭头,你可以这样试试。不要将橙色线作为一种视图。每个项目包含一条直线,所选项目使用“带箭头的线”而不是直线。这意味着,每个项目都包含一个头像,TextViews 和一个 ImageView 作为底部橙色线。

        【讨论】:

          【解决方案5】:

          据我们所知,我们可以自定义列表视图。正如其他人已经建议如何使用不同的可能视图来实现主布局,我将坚持它的 arrow 部分。考虑您有一个自定义的水平 ListView,它有一个 ImageView、一个 TextView(如如图所示)等。您还可以为其添加彩色矩形/线条/形状(在 Textview 下方,因为您可以自定义列表视图的外观)。因此每个列表项都会有它,因此它看起来是连续的.现在是重点:

          1)假设当用户单击此列表项时,您调用 onItemClickListener() 并更改该特定项中的矩形/线条的形状,这将给出您想要的外观。

          2)如果您希望在按下列表项时发生某些事情,我建议使用 Onlongpressed() 以便当用户点击并按住列表项时您可以执行必要的操作。

          【讨论】:

          • @mahbub 希望对您有所帮助。如果我错过了什么或者您有任何疑问,请告诉我。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-12
          相关资源
          最近更新 更多