2014-08-27 50 views
2

我有一个ScrollViewLinearLayout和内部4 ImageView的,但第一个没有显示。ScrollView中的第一个嵌入ImageView未显示

(的可绘制和ID的名称是不一样的,我写XXX故意)

这是我的布局

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linLayoutAbout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:orientation="vertical" > 


    // Another stuff 
    ... 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginBottom="5dp" 
     android:orientation="vertical" > 

     <ScrollView 
      android:id="@+id/scrollView1" 
      android:layout_width="wrap_content" 
      android:layout_height="65dp" 
      android:layout_gravity="center" 
      android:isScrollContainer="true" > 
      <LinearLayout 
       android:id="@+id/linLayoutScrollView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:orientation="vertical" >  

       <ImageView    //<- Just this ImageView is not shown 
        android:id="@+id/logo_XXX" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:layout_marginBottom="5dp" 
        android:src="@drawable/logo_XXX" /> 

       <ImageView 
         android:id="@+id/logo_XXX" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         android:layout_marginBottom="5dp" 
         android:src="@drawable/logo_XXX" /> 

       <ImageView 
        android:id="@+id/logo_XXX" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:layout_marginBottom="5dp" 
        android:src="@drawable/logo_XXX" /> 

       <ImageView 
        android:id="@+id/logo_XXX" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:src="@drawable/logo_XXX" /> 
      </LinearLayout>           
     </ScrollView> 
    </LinearLayout> 


    <Button 
     android:id="@+id/close_button" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:layout_marginTop="10dp" 
     android:text="@string/close_about" /> 

如果我设置android:layout_height一些dp_value那么我就可以看不到第一个ImageView,但是如果我将它设置为“wrap_content”,那么我可以看到所有的ImageView的。

有人可以告诉我我做错了什么,我该如何解决?

预先感谢您。

回答

3

你要删除的行

android:layout_gravity="center" 

在LinearLayout中ID为 “@ + ID/linLayoutScrollView1” 了滚动内。因为它将线性布局集中在ScrollView的65个像素内,这意味着上述一半图像不在屏幕之外。

试试这个代码;

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linLayoutAbout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:orientation="vertical" > 
    // Another stuff 
    ... 


    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginBottom="5dp" 
     android:orientation="vertical" > 

     <ScrollView 
      android:id="@+id/scrollView1" 
      android:layout_width="wrap_content" 
      android:layout_height="65dp" 
      android:layout_gravity="center" 
      android:isScrollContainer="true" > 

      <LinearLayout 
       android:id="@+id/linLayoutScrollView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" > 

       <ImageView 
        android:id="@+id/logo_XXX1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:layout_marginBottom="5dp" 
        android:src="@drawable/ic_launcher" /> 

       <ImageView 
        android:id="@+id/logo_XXX2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:layout_marginBottom="5dp" 
        android:src="@drawable/ic_launcher" /> 

       <ImageView 
        android:id="@+id/logo_XXX3" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:layout_marginBottom="5dp" 
        android:src="@drawable/ic_launcher" /> 

       <ImageView 
        android:id="@+id/logo_XXX4" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:src="@drawable/ic_launcher" /> 
      </LinearLayout> 
     </ScrollView> 
    </LinearLayout> 

    <Button 
     android:id="@+id/close_button" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:layout_marginTop="10dp" 
     android:text="close_about" /> 

</LinearLayout> 

我改变了LinearLayout并为图像添加了一些实际值。现在所有的图像都显示正确。只需更换您的图像,看看不同之处。

+0

它没有奏效。我尝试了所有可能的组合,在scrollview和LinearLayout中使用和不使用重力。 – 2014-08-27 14:15:58

+0

看看我的编辑。 – 2014-08-27 14:23:10

+0

它已经与第一个答案(在编辑之前)一起工作,我已经运行了旧的答案。 Thx;)但非常感谢,你做了这样一个例子。 – 2014-08-27 14:37:26

1

65必须小于总高度。它必须显示,当你尝试一个更大的dp值,可能是150等。它尝试了一些随机图像。

+0

我现在测试,thx – 2014-08-27 13:45:28

+0

我得到了第一个ImageView的低一半。我用这个“65dp”的意图是创建一个可滚动的“窗口”(具有确定高度的ScrollView),我可以在其中显示内容。如果我增加高度,当然会显示第一个ImageView(如上所述),但我想滚动并通过此“窗口”查看图像。问候 – 2014-08-27 13:51:50

+1

这是无关紧要的,它是LinearLayour的“引力”。 Thx – 2014-08-27 14:38:34