【问题标题】:Android Imageview "squeezed" by TextViewAndroid Imageview被TextView“挤压”
【发布时间】:2012-12-05 16:36:07
【问题描述】:

我已经定义了一个 XML 来显示一个小弹出窗口:

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

<ScrollView
    android:id="@+id/scroller"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dip"
    android:background="@drawable/marker_popup_border"
    android:clickable="true"
    android:fadingEdgeLength="5dip"
    android:scrollbars="none" >

    <LinearLayout
        android:id="@+id/tracks"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal|center_vertical"
        android:orientation="horizontal"
        android:padding="10dip" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingRight="10dp" >

            <TextView
                android:id="@+id/popUpName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView
                    android:id="@+id/popUpState"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:drawablePadding="5dp" />
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:background="@color/graylightmore" >
        </LinearLayout>

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:contentDescription="@string/info"
            android:paddingLeft="5dp"
            android:src="@drawable/info" />

    </LinearLayout>
</ScrollView>

<ImageView
    android:id="@+id/arrow_down"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="-4dip"
    android:contentDescription="@string/empty"
    android:src="@drawable/arrow_down_black" />

当两个 Textview 之一需要大量空间时,信息图像会被压缩...您可以在 this 链接上看到结果。我需要一个提示,以便始终显示 i,并且如果需要,将 textviews 分为 2 行。

【问题讨论】:

    标签: android textview imageview width


    【解决方案1】:

    尝试给 layout_weight 属性如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical" >
    
    <ScrollView
        android:id="@+id/scroller"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dip"
        android:background="@drawable/marker_popup_border"
        android:clickable="true"
        android:fadingEdgeLength="5dip"
        android:scrollbars="none" >
    
        <LinearLayout
            android:id="@+id/tracks"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal|center_vertical"
            android:orientation="horizontal"
            android:padding="10dip" >
    
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:paddingRight="10dp" 
                android:layout_weight="2">
    
                <TextView
                    android:id="@+id/popUpName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
    
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center" >
    
                    <TextView
                        android:id="@+id/popUpState"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:drawablePadding="5dp" />
                </LinearLayout>
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="1dp"
                android:layout_height="match_parent"
                android:background="@color/graylightmore" 
                >
            </LinearLayout>
    
            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:contentDescription="@string/info"
                android:paddingLeft="5dp"
                android:src="@drawable/info" 
                android:layout_weight="1"/>
    
        </LinearLayout>
    </ScrollView>
    
    <ImageView
        android:id="@+id/arrow_down"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="-4dip"
        android:contentDescription="@string/empty"
        android:src="@drawable/arrow_down_black" />
    

    【讨论】:

    • 感谢您的提示。实际上赋予权重 i 不会被挤压,但是,弹出结果不同。给我一些时间,我会告诉你我的意思......
    • Here 可以看到弹窗结果不同,这取决于textview。
    • 好的。我懂了。而且我认为,为图像视图提供静态宽度并不是一个好主意!你能让你的父布局跟踪相对布局吗?
    • 我也是这个观点,不做静态宽度。我也尝试将布局更改为相对布局,但弹出窗口始终以屏幕宽度为宽度。
    • 好吧,如果你的意思是 android:layout_width="0dp" 它是 Eclipse 建议的,而不是“包装内容”。
    猜你喜欢
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 2015-08-19
    • 2014-04-26
    • 2018-02-06
    • 2020-10-15
    相关资源
    最近更新 更多