我正在尝试在我的应用中创建自定义列表视图。在肖像中它很好,但在横向模式下,行的宽度保持与纵向相同。这是我用来创建列表视图的列表和代码的屏幕截图。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/lnrRow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical"
android:background="@drawable/textlines" >
<TextView
android:id="@+id/txt_Profile_Name"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:id="@+id/lnrRowAction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<Button
android:id="@+id/imgEdit"
style="@style/editButton" />
<Button
android:id="@+id/imgDelete"
style="@style/deleteButton" />
</LinearLayout>
</LinearLayout>
<style name="editButton">
<item name="android:drawableLeft">@drawable/ic_action_edit</item>
<item name="android:textStyle">normal</item>
<item name="android:textSize">12dp</item>
<item name="android:textColor">@color/Gray</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@color/Transparent</item>
<item name="android:text">Edit</item>
</style>
答案 0 :(得分:1)
这可以指向正确的方向(如果您没有在按钮样式中设置重量和/或宽度):
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/lnrRow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
>
<TextView
android:id="@+id/txt_Profile_Name"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="4"
android:background="@drawable/textlines"
/>
</LinearLayout>
<LinearLayout
<Button
android:id="@+id/imgEdit"
android:layout_height="0dp"
android:layout_weight="1"
style="@style/editButton"
/>
<Button
android:id="@+id/imgDelete"
android:layout_height="0dp"
android:layout_weight="1"
style="@style/deleteButton"
/>
</LinearLayout>
</LinearLayout>
答案 1 :(得分:1)
使用相对布局而不是线性布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lnrRow"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/txt_Profile_Name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/imgEdit"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/imgEdit"
android:background="@drawable/textlines" />
<Button
android:id="@+id/imgEdit"
style="@style/editButton"
android:layout_alignBaseline="@+id/imgDelete"
android:layout_toLeftOf="@+id/imgDelete" />
<Button
android:id="@+id/imgDelete"
style="@style/deleteButton"
android:layout_alignParentRight="true" />
</RelativeLayout>
答案 2 :(得分:1)
这是因为在您的父级线性布局中,orintation为 水平 。所以,您只需要通过 垂直 进行更改,然后获得所需的布局..