带有编辑文本行项目的Android ListView在方向更改时调整大小

带有编辑文本行项目的Android ListView在方向更改时调整大小,listview,android-edittext,android-orientation,Listview,Android Edittext,Android Orientation,将我的Android手机从potrait转到landscpe,结果是我列表视图中的所有列表项都被调整了大小。ListView未正确刷新。更改方向时,listview的宽度不可用。我在活动的清单文件中尝试了configChanges:orientation,但结果仍然相同 图片如下: 波特雷特: 景观: 整排人都在改变方向 下面提到了使用的xml布局: <LinearLayout a:id="@+id/web_watch_list_modifier_row_body"

将我的Android手机从potrait转到landscpe,结果是我列表视图中的所有列表项都被调整了大小。ListView未正确刷新。更改方向时,listview的宽度不可用。我在活动的清单文件中尝试了configChanges:orientation,但结果仍然相同

图片如下:

波特雷特:

景观:

整排人都在改变方向

下面提到了使用的xml布局:

 <LinearLayout

        a:id="@+id/web_watch_list_modifier_row_body"
        a:visibility="visible"
        a:gravity="center"
        a:background="@drawable/list_selector"
        a:layout_height="wrap_content"
        a:layout_width="fill_parent"
        a:orientation="horizontal">

    <EditText
            a:id="@+id/watch_list_name_text_box"
            a:layout_height="40dip"
            a:layout_width="0dip"
             a:layout_marginLeft="2dp"
            a:maxLength="32"
            a:singleLine="true"
            a:layout_weight="40"/>


    <ImageView
            a:id="@+id/dragImageView"
            a:background="@drawable/drag_button_img"
            a:layout_height="wrap_content"
            a:layout_width="wrap_content"/>

</LinearLayout>


等待您的宝贵建议…

首先将a:layout\u宽度或LinearLayout更改为“match\u parent” 当其他元素没有权重时,我不确定布局_weight=“40”实现了什么,请尝试1

我会尝试使用RelativeLayout,如下所示(没有检查xml的正确性):


如果您没有声明android:configChanges,那么当您更改方向时,您的活动将重新启动。如果您需要的只是适合新方向的布局,那么您不希望这样

重要的是,如果你的目标版本高于13,那么你还需要声明“屏幕大小” android:configChanges=“方向|屏幕大小”


如果这仍然不起作用,请尝试覆盖OnConfiguration Changed(),并在每次旋转设备时使ListView无效,活动将重新启动。。可能这就是EditText调整大小的原因

尝试将其添加到清单文件中

android:configChanges="orientation|keyboardHidden"
你也可以看看这个

android:configChanges="orientation|keyboardHidden"