【问题标题】:First embedded ImageView in ScrollView not shown未显示 ScrollView 中的第一个嵌入 ImageView
【发布时间】:2014-08-27 13:28:16
【问题描述】:

我有一个 ScrollView 和一个 LinearLayout 和 4 个 ImageView,但第一个没有显示。

(drawable和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

谁能告诉我我做错了什么以及如何解决?

提前谢谢你。

【问题讨论】:

    标签: android android-layout scrollview android-imageview


    【解决方案1】:

    你必须删除该行

    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 并为图像添加了一些实际值。现在所有图像都正确显示了。只需替换您的图像并查看差异。

    【讨论】:

    • 它没有工作。我尝试了所有可能的组合,在滚动视图和线性布局中有和没有重力。
    • 它已经与第一个答案(在编辑之前)一起使用,我已经运行了旧答案。谢谢 ;) 但是非常感谢,你做了这样一个例子。
    【解决方案2】:

    65 必须小于总高度。它必须在您尝试更大的 dp 值时显示,可能是 150 等。它可以在我尝试的一些随机图像上工作。

    【讨论】:

    • 我得到了第一个 ImageView 的下半部分。我对这个“65dp”的意图是创建一个可滚动的“窗口”(具有确定高度的 ScrollView),我可以在其上显示 iamges。如果我增加高度,我当然会显示第一个 ImageView(如前所述),但我想滚动并查看此“窗口”上的图像。问候
    • 这无关紧要,它是 LinearLayour 的 gravity。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多