横向时 gridview 内的线性布局出现故障
Glitch with linear layout inside gridview when in landscape orientation
我在布局故障方面遇到困难。我有不同的纵向和横向布局。 问题只出现在横向布局上,即使两者的 xml 相同。
问题发生在 GridView 行内部。在行中,我有这些控件:
TextView1 ImageButton1 TextView2 Textview3 EditText ImageButton2 Imagebutton3
我正在使用布局权重让 TextView2、TextView3 和 EditText 控件占据剩余的 space。
纵向布局和横向布局的区别在于:
纵向布局是 4 个不同部分的垂直堆叠。风景是一分为二的,屏幕左侧有两个,右侧有两个。
这是 GridView 行的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp">
<TextView
android:id="@+id/gridfield_MemoryOrdinalPosition"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#ff6e807c"
android:textStyle="bold"
android:gravity="center_vertical"
android:layout_marginRight="5dp"></TextView>
<ImageButton
android:id="@+id/btnGoMemoryPosition"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:background="@mipmap/go_arrow" />
<TextView
android:id="@+id/gridfield_MemoryLiftPosition"
android:layout_weight="1"
android:text="0.00"
style="@style/MemoryLiftPositionStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:minWidth="150dp"
android:gravity="center_vertical|end" />
<TextView
android:id="@+id/gridfield_MemoryLiftPositionUnits"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical|start"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#ff2d2eff"
android:text="in"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
/>
<EditText
android:id="@+id/gridfield_MemoryName"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="3"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:background="@drawable/rect_text_edit"
android:text="Named location"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/black"
android:textCursorDrawable="@null"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"/>
<ImageButton
android:id="@+id/btnSetMemoryPosition"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/save"
android:contentDescription="Save" />
<ImageButton
android:id="@+id/btnClearMemoryPosition"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/trash"
android:contentDescription="Delete" />
</LinearLayout>
activity_horizontal_margin
的值在横向模式下可能会有所不同。
默认情况下纵向为 16dp,横向为 64dp。
我在布局故障方面遇到困难。我有不同的纵向和横向布局。 问题只出现在横向布局上,即使两者的 xml 相同。
问题发生在 GridView 行内部。在行中,我有这些控件:
TextView1 ImageButton1 TextView2 Textview3 EditText ImageButton2 Imagebutton3
我正在使用布局权重让 TextView2、TextView3 和 EditText 控件占据剩余的 space。
纵向布局和横向布局的区别在于: 纵向布局是 4 个不同部分的垂直堆叠。风景是一分为二的,屏幕左侧有两个,右侧有两个。
这是 GridView 行的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp">
<TextView
android:id="@+id/gridfield_MemoryOrdinalPosition"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#ff6e807c"
android:textStyle="bold"
android:gravity="center_vertical"
android:layout_marginRight="5dp"></TextView>
<ImageButton
android:id="@+id/btnGoMemoryPosition"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:background="@mipmap/go_arrow" />
<TextView
android:id="@+id/gridfield_MemoryLiftPosition"
android:layout_weight="1"
android:text="0.00"
style="@style/MemoryLiftPositionStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:minWidth="150dp"
android:gravity="center_vertical|end" />
<TextView
android:id="@+id/gridfield_MemoryLiftPositionUnits"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical|start"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#ff2d2eff"
android:text="in"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
/>
<EditText
android:id="@+id/gridfield_MemoryName"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="3"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:background="@drawable/rect_text_edit"
android:text="Named location"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/black"
android:textCursorDrawable="@null"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"/>
<ImageButton
android:id="@+id/btnSetMemoryPosition"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/save"
android:contentDescription="Save" />
<ImageButton
android:id="@+id/btnClearMemoryPosition"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/trash"
android:contentDescription="Delete" />
</LinearLayout>
activity_horizontal_margin
的值在横向模式下可能会有所不同。
默认情况下纵向为 16dp,横向为 64dp。