需要在水平滚动视图中一次显示两个项目

Need to display two items at a time within a horizontal scroll view

我正在尝试在水平滚动中显示两个视图,如下图所示。我想知道实现此目标的可能方法,因为我实现的输出与我们在下面的屏幕截图中看到的要求相去甚远:-

这是我的布局的一部分,它描述了我已经实现的视图:-

  <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:id="@+id/imageGallery"
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="3"/>

    </HorizontalScrollView>

然后我在上面的视图中创建了一个垂直方向的线性布局,并向其中添加了一个图像视图和 3 个文本视图,如下面的代码片段所示:-

     @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    private View getVerticalLinearLayout(Integer image){
        LinearLayout verticalLayout = new LinearLayout(getContext());
        verticalLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT,2.0f));
        verticalLayout.setOrientation(LinearLayout.VERTICAL);
        verticalLayout.setBackground(getResources().getDrawable(R.drawable.layout_border));
        verticalLayout.addView(scaleImage((ImageView) getImageView(image)));
        verticalLayout.addView(getTextView("Book Name",14,"#444444"));
        verticalLayout.addView(getTextView("Author Name",12,"#444444"));
        verticalLayout.addView(getTextView("Lender Name",12,"444444"));
        return verticalLayout;

    }

然而,我所取得的成就可以在下图中看到

您可以将图书视图设计为单独的布局文件。然后,您可以使用 LayoutInflater 实例化它并用您的数据填充它,最后将它们单独添加到您的 imageGallery 布局中。

要使屏幕上同时显示两个视图,您必须知道屏幕宽度。这可以通过 DisplayMetrics 实现,或者您可以在完全水平覆盖屏幕的视图上调用 getWidth()。获得该宽度后,您将添加到水平滚动视图的 bookView 布局需要将其宽度设置为 screenWidth/2.