需要在水平滚动视图中一次显示两个项目
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
.
我正在尝试在水平滚动中显示两个视图,如下图所示。我想知道实现此目标的可能方法,因为我实现的输出与我们在下面的屏幕截图中看到的要求相去甚远:-
这是我的布局的一部分,它描述了我已经实现的视图:-
<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
.