我正在为Android聊天,我需要制作一个主要的xml布局。 将有一个TextView来显示历史记录,EditText和Send Button。所有视图都应该像whatsapp一样定位。屏幕底部的EditText和Button。剩下的空间转到TextView。 那怎么可能做到这一点,所以它在任何屏幕和任何方向都会很好看? 我尝试用android:layout_weight来做,但我不认为它会非常便携。 提前谢谢。
答案 0 :(得分:2)
我认为单个TextView不是实现此目的的最佳方式。
我建议使用ListView而不是巨大的TextView来保存整个会话历史记录。 ListView中的每个元素都将包含一个TextView和任何其他所需的视图,以显示历史记录中的每条消息,默认情况下,它将允许向上和向下滚动以查看整个历史记录。然后,您可以调整文本大小以处理不同的屏幕尺寸。
这是默认的Android Messaging应用程序的实现方式,但您可以自定义ListView中的每个项目,使其看起来如您所愿(例如WhatsApp)。
希望这有帮助。
答案 1 :(得分:1)
因为layout_weight设置了比例,但我的editText / Button的高度是固定的
所以?不要将android:layout_weight
放在固定部分上。
因此,对于不同的屏幕尺寸,将给予它们不同的高度,留下一些空间。
然后不要将android:layout_weight
放在固定部分上。你用锤子击打自己的头部,然后抱怨你的头疼。
步骤1:垂直LinearLayout
。
步骤2:TextView
内的成绩单LinearLayout
,高度为0,权重为1.
步骤3:EditText
和Button
(水平LinearLayout
?),在垂直LinearLayout
内,高度为wrap_content
且不指定的重量(默认为0)。
高度为wrap_content
的固定高度的东西会获得像素分配,而你的成绩单TextView
将获得所有剩余的像素,由于它的权重为1。
我也回应了physphil的建议,即在成绩单模式中使用ListView
作为聊天记录,而不是TextView
。