我做了聊天活动。但我有一个问题。在layout的底部有一些空白空间,我不知道为什么以及如何,因为在预览(与我的手机相同的屏幕)上,理想情况下使用空白空间。当我在手机上播放这个活动时,空白的空间"神奇地"出现。我认为这是因为元素的大小被硬编码到xml中,并且它对于屏幕更改不灵活。我想使用权重来保持元素之间的比例。我想将 android:weightSum 设置为 dp 中的屏幕高度(因为我在dp中编码了元素大小)并更改每个 android:weight 元素到他们的实际高度。但是我不知道如何在dp中获得屏幕高度(我的屏幕上有information像素)这种方法是否解决了空白空间问题并实现屏幕灵活性?
有活动布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_welcome"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="xxx.xx.xxxxxxx.WelcomeActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="58dp"
android:background="#545454">
<android.support.v7.widget.AppCompatImageButton
android:layout_width="55dp"
android:layout_height="wrap_content"
app:srcCompat="@drawable/icarrowbackblack24dp"
android:layout_alignParentStart="true"
android:id="@+id/imageButton"
android:layout_alignParentTop="true"
android:background="@drawable/image_button"
android:layout_alignParentBottom="true" />
<TextView
android:text="xxxxxx xxxxxxxxx"
android:layout_width="140dp"
android:layout_height="23dp"
android:layout_marginStart="18dp"
android:id="@+id/textView19"
android:textSize="17dp"
android:textColor="#ffffff"
android:layout_alignParentTop="true"
android:layout_marginTop="9dp"
android:layout_toEndOf="@+id/imageButton" />
<TextView
android:text="xxxxxxx(x) xxxxx"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:id="@+id/textView21"
android:layout_below="@+id/textView19"
android:textSize="12dp"
android:layout_alignStart="@+id/textView19"
android:layout_alignParentBottom="true" />
</RelativeLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="459dp">
<RelativeLayout
android:layout_width="match_parent"
android:id="@+id/relative_layout"
android:layout_height="459dp"
android:background="#d3d3d3">
<ListView
android:layout_width="match_parent"
android:layout_height="459dp"
android:id="@+id/messegesListView"
android:divider="@null"
android:dividerHeight="3dp"
android:paddingBottom="6dp"
android:listSelector="@drawable/listview_background"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true">
</ListView>
</RelativeLayout>
</ScrollView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="43dp"
android:background="#ffffff">
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="43dp"
android:background="#ffffff">
<EditText
android:layout_width="325dp"
android:layout_height="43dp"
android:layout_alignParentBottom="true"
android:hint="xxxxxx xxxxxxxxx..."
android:background="@android:color/transparent"
android:layout_alignParentStart="true"
android:id="@+id/editText" />
<Button
android:text=">"
android:layout_width="43dp"
android:layout_height="43dp"
android:id="@+id/button10"
android:scaleType="fitCenter"
android:background="@drawable/button"
android:textColor="@color/button_text_color"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true" />
<Button
android:text=""
android:layout_width="43dp"
android:layout_height="43dp"
android:layout_alignParentBottom="true"
android:id="@+id/button11"
android:background="@drawable/button"
android:textColor="@color/button_text_color"
android:layout_toStartOf="@+id/button10" />
</RelativeLayout>
</LinearLayout>
答案 0 :(得分:0)
我觉得有几件事对你来说很重要:
ListView
。 ScrollView
可以处理它自己的滚动事件。ListView
)可能会在某些设备上显示不佳。这就是459dp
的概念派上用场的地方。这就是我实现你的布局的方式。
layout_weights
我已将ScrollView
的{{1}}设置为1,并将其layout_weight
更改为ListView
。这可确保列表视图占用布局中任何未占用的空间。
layout_height