在 android 中将 ListView 中的自定义布局设置为 non-scrollable

Set Custom layout inside ListView as non-scrollable in android

我有一个包含自定义布局的 ListView

列表视图的每一行如下所示:

该行包含 2 个 LinearLayouts,一个用于日期,一个用于进度详细信息。进度详细信息布局由 2 TextViews(标题和其下方的数据)和 1 Button(查看更多)组成。

当用户单击“View More”按钮时,标题下方的数据会扩展到 10-12 行。

我的问题是,当 TextView 展开时,scrollbar 出现在边缘,用户必须滚动才能阅读。行的宽度不会改变,即行不会展开。

我希望扩展行宽,以便用户不必滚动即可阅读文本。

我确实读了很多书,并且已经尝试过以下选项,但它们没有用

1. android:scrollbar="none"
2. View.setOverScrollMode(View.OVER_SCROLL_NEVER);
3. View.setScrollContainer(false);

请帮我解决这个问题。

您必须为此使用扩展列表视图动画,您可以为此使用此库 https://github.com/nhaarman/ListViewAnimations

尝试使用 LayoutParams 并在侦听器中以编程方式为您的 Button 更改高度。

LayoutParams 应该派生自包含您的 LinearLayout 的布局类型。例如,如果它是一个 RelativeLayout,它将看起来像这样:

int heightForRow = 100;
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
params.height = heightForRow;
yourLinearLayout.setLayoutParams(params);

请注意,您的 LinearLayout 必须在另一个布局内(示例中的 RelativeLayout)

使用可展开的 List View,这样您的列表的普通视图将具有您提供的图像,并且在单击该视图时它将展开以显示您想要显示的详细信息,方法是单击 view more 选项(在你的图片中)

这里有一个图 link 以了解更多信息。