ScrollView中的第一个嵌入式ImageView未显示

时间:2014-08-27 13:28:17

标签: android android-layout scrollview android-imageview

我有一个ScrollViewLinearLayout,内有4 ImageView,但第一个没有显示。

(drawables和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" />

如果我使用某个dp_value设置android:layout_height,那么我看不到第一个ImageView,但如果我使用“wrap_content”设置它,那么我可以看到所有ImageView

愿任何人告诉我我做错了什么,我该如何解决?

提前谢谢。

2 个答案:

答案 0 :(得分:3)

您必须删除该行

android:layout_gravity="center"

在ScrollView中的id为“@ + id / linLayoutScrollView1”的LinearLayout中。因为它将线性布局集中在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并为图像添加了一些实际值。现在所有图像都正确显示。只需替换您的图像,看看差异。

答案 1 :(得分:1)

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