我有一个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);
}
});
请帮帮我。
答案 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