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

时间:2016-07-30 11:06:23

标签: android android-linearlayout horizontalscrollview

我试图在水平滚动中显示两个视图,如下图所示。我想知道实现这一目标的可能方法,因为我所获得的输出远远不是我们在下面的屏幕抓取中看到的要求: -

Required Output

以下是我的布局的一部分,它描述了我实施的视图: -

  <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>

在上面的视图中,我创建了一个垂直方向的线性布局,并在其中添加了一个imageview和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;

    }

然而,我设法实现的目标可以在enter image description here

下面的图片中看到

1 个答案:

答案 0 :(得分:1)

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

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