我尝试使用下一个外观获取自定义ListView:
XML文件是下一个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingRight="15dp"
android:paddingLeft="15dp"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="4">
<TextView
android:id="@+id/tveva"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Nombre"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_weight="2">
<TextView
android:id="@+id/tvpor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Porcentaje"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_weight="2">
<TextView
android:id="@+id/tvnot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Nota"
/>
</LinearLayout>
</LinearLayout>
当我运行应用程序并且 tvnot (TextView,你可以看到&#34; Nota&#34;)是4.5,例如,或6.7(它们是带小数的标记)时出现问题ListView是完美对齐的并且具有良好的外观,但如果标记类似于5.75(两位小数),则左侧的LinearLayout(其中包括TextView with&#34; Porcentaje&#34;)向左移动一点ListView失去了它的线性度:
我将layout_weight属性设置为三个TextView的每个LinearLayout。我在Android上并不那么擅长,我认为只要设置这个属性就可以修复,但显然我错了。
希望你能帮助我!
答案 0 :(得分:4)
您无需将所有元素包装在另一个LinearLayout中。这在Android中实际上是件可怕的事情。我建议你这样做:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="5dp">
<TextView
android:id="@+id/tveva"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="left"
android:text="Nombre"
android:textSize="20sp"
android:layout_weight=".4"/>
<TextView
android:id="@+id/tvpor"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="left"
android:text="Porcentaje"
android:textSize="20sp"
android:layout_weight=".3"/>
<TextView
android:id="@+id/tvnot"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="left"
android:text="Nota"
android:textSize="20sp"
android:layout_weight=".3"/>
</LinearLayout>
问候!
答案 1 :(得分:3)
使用布局权重时,必须将宽度(或高度)设置为0dp
,否则视图可能无法正确缩放。例如:
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4">
答案 2 :(得分:0)
试试这个。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="5dp"
android:weightSum="8" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4" >
<TextView
android:id="@+id/tveva"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nombre"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="right" >
<TextView
android:id="@+id/tvpor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Porcentaje"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="right" >
<TextView
android:id="@+id/tvnot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nota"
android:textSize="20sp" />
</LinearLayout>
答案 3 :(得分:-1)
通常在我们使用layout_weight时,我们使用宽度或高度为0dp,根据情况,在您的方案中 你正在使用layout_width:wrap_content 使用layout_width:0dp