如何以线性布局显示最后一个文本视图

Posted

技术标签:

【中文标题】如何以线性布局显示最后一个文本视图【英文标题】:How to display last textview in linear layout 【发布时间】:2017-10-27 07:57:53 【问题描述】:

知道在LinearLayout 内显示最后一个文本视图在ScrollView 内吗?

这是我的代码

<?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:layout_
android:layout_
tools:context="com.example.qianonnphoon.tradeal.chat.ChatActivity"
android:background="#ffffff"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical">

<ScrollView
android:layout_
android:layout_weight="1"
android:layout_
android:id="@+id/scrollView">

<LinearLayout
    android:layout_
    android:layout_
    android:orientation="vertical"
    android:id="@+id/layout1">

</LinearLayout>
</ScrollView>

<include
layout="@layout/message_area"
android:layout_
android:layout_
android:gravity="bottom"
android:layout_marginTop="5dp"/>
</LinearLayout>

TextView 会在收到数据时添加到layout1。所以一旦完成加载,我将在layout1 中有多个文本视图。但是,它显示第一个TextView,然后我需要向下滚动才能看到最后一个TextView。任何想法在完成加载时显示最后一个 TextView

这是我在接收数据时添加TextView的代码

TextView textView = new TextView(ChatActivity.this);
    textView.setText(message);
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    lp.setMargins(0, 0, 0, 10);
    textView.setLayoutParams(lp);

    if(type == 1) 
        textView.setBackgroundResource(R.drawable.rounded_corner1);
    
    else
        textView.setBackgroundResource(R.drawable.rounded_corner2);
    

    layout.addView(textView);
    scrollView.fullScroll(View.FOCUS_DOWN);

【问题讨论】:

为什么 android:layout_weight="20" 滚动视图 @NileshRathod 因为我只是按照教程来创建它,还没有改变。但这是它不会先显示最后一个文本视图的原因吗? 我认为这个答案会对你有所帮助:***.com/a/3310376/8837156> 可能只是试试我下面的答案,让我知道它是否有效@phoon 我可以知道为什么这个问题被否决了吗? 【参考方案1】:

这个解决方案对我有用

final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
scrollview.post(new Runnable() 
    @Override
    public void run() 
        scrollview.fullScroll(ScrollView.FOCUS_DOWN);
    
);

【讨论】:

以上是关于如何以线性布局显示最后一个文本视图的主要内容,如果未能解决你的问题,请参考以下文章

ImageView 未在滚动视图内的线性布局中显示

代码如何根据给编辑文本视图的计数值动态实现线性布局

Android水平线性布局 - 包装元素[重复]

将视图添加到底部的垂直线性布局(以编程方式)

在其线性布局垂直父Android中将以编程方式创建的单选按钮居中

坏 xml 块 3 线性布局和 2 日历