2014-03-01 41 views
1

我想实现一个简单的屏幕,在这里我有书的条目水平滚动视图。我遇到的问题是,它似乎过早切断,切断条目。我已经看过类似这样的其他问题,以及它们的补丁似乎并没有解决我的,所以我不知道如何处理这个问题。线性布局还是水平滚动查看被切断内容

这里是什么切断的样子:

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> 

回答

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> 

0

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

话虽这么说,我猜这个修复程序是哈克,并没有真正解决的首要问题。

+1

我还搜查多个问题,在这里对于这个问题,寻找解决方案是多么容易:http://stackoverflow.com/a/12181589/2311557 :) – codepleb

0

我尝试了所有的解决方案,我可以在网络上找到,但他们都不工作了Horizo​​ntalScrollView内的相对布局,所以我所做的是只是一种解决方法。在布局中添加了所有视图之后,我在布局中添加了一个不可见的“行”作为最后一个子元素,并将其放置在最后一个实际视图的右侧。这有点冒险,但它是最简单而有效的方式,不需要实现不必要的自定义视图。

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

工程就像一个魅力,并希望这有助于如果有人在寻找有用的东西时绊倒它。