LinearLayout显示项目从下到上

时间:2013-06-03 11:12:20

标签: android android-linearlayout

我有一个LinearLayout。我在运行时添加项目。但所有项目都从TOP到BOTTOM显示。现在我正在尝试将项目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);
        }
    });

请帮帮我。

2 个答案:

答案 0 :(得分:5)

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

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

您只需添加始终使用index = 0

您还可以使用android:gravity="bottom"

答案 1 :(得分: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);

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