【问题标题】:android - inflate and attach a custom layout on list item during swip gestureandroid - 在滑动手势期间在列表项上充气并附加自定义布局
【发布时间】:2019-09-16 21:24:34
【问题描述】:

我有一个带有自定义列表行布局的列表视图。我想实现一个功能,在该功能中,用户将列表项向右滑动并看到另一个布局,显示该行的更多信息。这是一个关于我的意思的图:


(来源:persiangig.com

我已经在项目上实现了滑动手势,但我还没有弄清楚如何在所选项目上充气和附加另一个布局,其中包含更多详细信息,如联系人的电话号码等。

感谢任何建议和解决方法

谢谢

马赫迪

【问题讨论】:

  • 使用水平(左,右)两个线性布局为行设计布局。一个用于主视图(右),另一个用于数字视图(左)。将左侧的可见性设置为消失。并在父布局中使用 android:animateLayoutChanges="true" 。并将左侧布局的可见性设置为用户滑动时可见。
  • 恐怕它不能正常工作。
  • 我已经让两个布局都可见,但是当我滑动列表行时,我可以看到两个布局都被滑动了。
  • 首先将数字布局的可见性设置为消失。从左向右滑动时使其可见,并在用户从右向左滑动时设置消失..

标签: android listview


【解决方案1】:

使用这个..

<LinearLayout
    android:animateLayoutChanges="true" 
     >//parent

       <LinearLayout
         android:visibility = "gone">
        //number layout
       </LinearLayout>

       <LinearLayout>
       //actual layout
       </LinearLayout>

    </LinearLayout>

【讨论】:

    【解决方案2】:

    我会尝试使用不同的方法来做到这一点: 列表中的每个项目从一开始就可以具有主要布局和附加布局(您不必动态添加它们)。

    例如,您可以使用以下布局创建单行:

    Row 
      --> Layout B
      --> Layout A
    

    其中布局 A(主行视图)位于 B 行(行信息视图)的正上方。然后,当用户在行上滑动时,您只能通过滑动移动布局 A,这将显示下方的布局 B。 这是基本思想,不用说您将不得不处理使视图按您想要的方式运行(例如,当您单击它时关闭该行)。

    另一个适合您上图示例的选项是将每行父级设置为 Horizo​​ntalScrollView 并将两个布局并排放置。起始位置应该是这样的,即第一项(在您的情况下 - 数字)是不可见的(在视图之外)。然后向右滚动会显示它。

    如果您希望它与动画一起出现,您可以自己实现它(基于手势)或使用附加视图的可见性并按照建议在父视图中使用 android:animateLayoutChanges="true"

    【讨论】:

    • 您的答案与@Sripthi 非常相似,但它不能按我的需要工作。滑动列表行不仅会移动最前面的两种布局。
    • 查看我的编辑,它提供了两种方法来实现您想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    相关资源
    最近更新 更多