4

我有一个线性布局。我正在运行时添加项目。但所有项目都是从顶部到底部显示的。现在我正在尝试从 BOTTOM 到 TOP 显示项目。

我是说。我想从 BOTTOM 到 TOP 以线性布局设置项目。

这是我的线性布局:-

 messagesContainer = (ViewGroup) findViewById(R.id.messagesContainer);
    scrollContainer = (ScrollView) findViewById(R.id.scrollContainer);

   LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
   LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);


    if (!leftSide) {
        bgRes = R.drawable.right_message_bg;
        params.gravity = Gravity.RIGHT;
        params.leftMargin=30;
    }
    else
    {
        params.gravity = Gravity.LEFT;
        params.rightMargin=30;
    }

    textView.setLayoutParams(params);

    textView.setBackgroundResource(bgRes);

    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            messagesContainer.addView(textView,messagesContainer.getChildCount());

            //messagesContainer.bringChildToFront(textView);

            // Scroll to bottom
            if (scrollContainer.getChildAt(0) != null) {
                scrollContainer.scrollTo(scrollContainer.getScrollX(), scrollContainer.getChildAt(0).getHeight());
            }
            scrollContainer.fullScroll(View.FOCUS_DOWN);
            scrollContainer.pageScroll(View.FOCUS_DOWN);
        }
    });

请帮我。

4

2 回答 2

9

您可以通过以下方式以编程方式添加它:

LinearLayout layout = findViewById(R.id.layout);
layout.addView(newView, index);

您只需要始终添加 index = 0

你也可以使用android:gravity="bottom"

于 2013-06-03T11:14:55.463 回答
1

重力。

此外,如果您希望消息从下到上显示,则需要按ViewGroup该顺序将它们添加到。

将重力设置为BOTTOM

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
            params.weight = 1.0f;
            params.gravity=48;

            button.setLayoutParams(params);

对于重力值以及如何设置重力检查重力

于 2013-06-03T12:48:57.920 回答