线性布局或水平滚动视图正在切断内容

时间:2014-03-01 21:54:22

标签: android xml android-layout horizontalscrollview

我正在尝试实现一个简单的屏幕,其中我有一个带有书籍条目的水平滚动视图。我遇到的问题是它似乎过早地切断了,切断了条目。我已经查看了类似的其他问题,他们的修复似乎没有解决我的问题,所以我不知道如何解决这个问题。

这就是切断的样子:

enter image description here

这是我的代码:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#D3D3D3" >
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="fill"
        android:orientation="vertical" >
        <TextView
            android:id="@+id/textView11"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dp"
            android:text="@string/af"
            android:textAppearance="?android:attr/textAppearanceLarge" />
        <HorizontalScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#A1A1A1" >
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="fill_horizontal|end"
                android:orientation="horizontal" >
                <RelativeLayout
                    android:id="@+id/relative1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="168dp"
                        android:layout_height="258dp"
                        android:layout_marginLeft="5dp"
                        android:layout_marginRight="5dp"
                        android:layout_marginTop="5dp"
                        android:contentDescription="@string/cd"
                        android:src="@drawable/af1" />
                    <TextView
                        android:id="@+id/textLabel1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/imageView1"
                        android:layout_centerInParent="true"
                        android:singleLine="true"
                        android:text="Guilty Wives" />
                </RelativeLayout>
                /*RelativeLayout repeats with different data, cut for brevity*/
            </LinearLayout>
        </HorizontalScrollView>
    </LinearLayout>
</ScrollView>

5 个答案:

答案 0 :(得分:0)

我设法通过将android:paddingRight="150dip"添加到LinearLayout来修复它。

话虽这么说,我猜这个修复很黑,而不是解决最初的问题。

答案 1 :(得分:0)

这是一个从未解决的已知错误:(https://code.google.com/p/android/issues/detail?id=20088), 但这里的代码对我有用。 诀窍是设置水平滚动视图的宽度以包装内容和它下面的线性(或相对)布局的宽度以匹配父级。

  

<HorizontalScrollView
    android:id="@+id/group_scroller"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal" >

    <LinearLayout android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    <RadioGroup
        android:id="@+id/choices_group"
        android:layout_width="wrap_content"
        android:orientation="horizontal"

        android:paddingTop="4dp"
        android:paddingBottom="4dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center_horizontal" />
    </LinearLayout>
</HorizontalScrollView>
     

答案 2 :(得分:0)

我尝试了所有可以在网上找到的解决方案但是没有一个在Horizo​​ntalScrollView中用于相对布局,所以我所做的只是一种解决方法。在布局中添加我的所有视图后,我添加了一个不可见的“线”作为我布局中的最后一个子项,并将其放置在我上一个实际视图的右侧。这有点hacky,但它是最简单,最有效的方法,而不实现不必要的自定义视图。

    View shim = new View(sender.getApplicationContext());
    RelativeLayout.LayoutParams shimParams = new RelativeLayout.LayoutParams(0,ViewGroup.LayoutParams.MATCH_PARENT);
    shimParams.addRule(RelativeLayout.RIGHT_OF,yourViewIDHere);
    shim.setLayoutParams(shimParams);
    YourLayout.addView(shim);

像魅力一样工作,希望如果有人在寻找有用的东西时偶然发现它会有所帮助。

答案 3 :(得分:0)

删除 线性布局中的android:layout_gravity =“ center_horizo​​ntal”。

   <HorizontalScrollView
               android:layout_gravity="center_horizontal"
               android:scrollbars="none"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content">
            <LinearLayout
                android:id="@+id/linear_buttons"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
             ......
             ......
           </LinearLayout>
    </HorizontalScrollView>

答案 4 :(得分:0)

我正在使用

android:layout_gravity="center"

在我的线性布局中。 删除它,它工作正常