相关疑难解决方法(0)

为什么0dp被认为是性能增强?

这个问题末尾的答案已经填写完整,结合了评论和解决方案.

我四处搜索,但没有发现任何真正解释为什么Android Lint以及一些Eclipse提示建议用一些layout_heightlayout_width值替换0dp.

例如,我有一个ListView建议改变

之前

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">
</ListView>
Run Code Online (Sandbox Code Playgroud)

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">
</ListView>
Run Code Online (Sandbox Code Playgroud)

同样,它建议更改ListView项.这些在变化之前和之后看起来都一样,但我有兴趣理解为什么这些是性能提升器.

任何人都有解释原因?如果它有帮助,这里是一般布局ListView.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ImageView
        android:id="@+id/logo_splash"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ImageView>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="@color/background"
        android:layout_below="@id/logo_splash">

        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1">
        </ListView>

        <TextView
            android:id="@android:id/empty"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/no_upcoming" />

    </LinearLayout>        
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

回答

我在这里给出答案,因为它实际上是答案和下面引用的链接的组合.如果我对某事有误,请告诉我.

来自0dip layout_height或layouth_width的诀窍是什么?

有3种常规布局属性可用于宽度高度

  1. android:layout_height
  2. android:layout_width
  3. android:layout_weight …

android android-layout android-lint

73
推荐指数
3
解决办法
2万
查看次数

在 Android 中使图标右对齐

我正在尝试一个接一个地设置两个图标(共享和心形图标),并且奇怪地右对齐一个没有显示。像这样的东西:

我正在尝试所有方法,但无法实现。可能有什么问题。以下是我正在查看的内容:

我试过的代码:

         <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="390dp"
            android:id="@+id/imageRelativeLayout"
            android:visibility="visible"
            android:background="@android:color/white">

            <TextView
                android:id="@+id/labelProductModel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:layout_marginTop="4dp"
                android:ellipsize="end"
                android:visibility="visible"
                android:ems="12"
                android:text="Product Code"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/labelProductName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:layout_below="@+id/labelProductModel"
                android:ellipsize="end"
                android:ems="12"
                android:visibility="visible"
                android:text="Product Name"
                android:textSize="16sp"/>

            <ImageView
                android:id="@+id/imageProduct"
                android:layout_width="match_parent"
                android:layout_height="220dp"
                android:layout_below="@+id/labelProductName"
                android:src="@drawable/action_video"
                android:contentDescription="@string/app_name"
                android:padding="4dp"/>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:layout_alignParentBottom="true"
                android:layout_below="@+id/imageProduct"
                android:gravity="left">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/listImages"
                    android:layout_width="wrap_content"
                    android:layout_height="200dp"
                    android:paddingLeft="4dp"
                    android:paddingRight="4dp"
                    android:visibility="visible"/>

            </LinearLayout>

            <ImageView
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:id="@+id/shareImage"
                android:paddingTop="5dp"
                android:contentDescription="@string/app_name"
                android:visibility="visible"
                android:src="@drawable/ic_share"/>

            <ImageView
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:contentDescription="@string/app_name"
                android:layout_toRightOf="@+id/shareImage"
                android:id="@+id/favImage"
                android:visibility="visible"
                android:src="@drawable/ic_heart"/>

        </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

android

0
推荐指数
1
解决办法
254
查看次数

标签 统计

android ×2

android-layout ×1

android-lint ×1