Android 创建两列行

Android 创建两列行,android,android-layout,Android,Android Layout,我很难创建两列行。我的要求是第一列占80%的空间,第二列占20% 第一列文本可能很长,在这种情况下,它应该环绕,但保持在80%的空间内。第二列更容易,它总是保持较短,不需要包装。但我希望第二列始终在中心垂直对齐,无论第一列绕了多少圈 我该怎么做 这是我到目前为止所拥有的。我需要改进这一点,以便第二列文本在顶部垂直对齐,第二列在右侧水平对齐 LinearLayout m_panel = new LinearLayout (this); m_panel.setLayoutParams(new Lay

我很难创建两列行。我的要求是第一列占80%的空间,第二列占20%

第一列文本可能很长,在这种情况下,它应该环绕,但保持在80%的空间内。第二列更容易,它总是保持较短,不需要包装。但我希望第二列始终在中心垂直对齐,无论第一列绕了多少圈

我该怎么做

这是我到目前为止所拥有的。我需要改进这一点,以便第二列文本在顶部垂直对齐,第二列在右侧水平对齐

LinearLayout m_panel = new LinearLayout (this);
m_panel.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
m_panel.setOrientation(LinearLayout.VERTICAL);

LinearLayout row_panel = new LinearLayout (m_panel.getContext());                           
row_panel.setWeightSum(1.0f);
LinearLayout.LayoutParams lp = new    LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
lp.setMargins(2,8,1,8);
row_panel.setLayoutParams(lp);
row_panel.setOrientation(LinearLayout.HORIZONTAL);


TextView subjectName = new TextView(middlePanel.getContext());
subjectName.setLayoutParams(new     LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT, 0.2f));
subjectName.setText(someText);                              
row_panel.addView(subjectName);

TextView size = new TextView(middlePanel.getContext());     
LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT, 0.8f);
size.setLayoutParams(lp2);

size.setText(sometext);

row_panel.addView(size);

第一部分,垂直居中添加:size.setGravityGravity.center\u VERTICAL;好的,完整答案是size.setGravityGravity.CENTER|u VERTICAL | Gravity.RIGHT;做得好。然而,问题是,为什么要使用Java动态创建此视图?它显然是一个确定的布局,所以为什么不使用XML布局文件呢-直到运行时,我才知道需要渲染多少行或数据。这是一个好方法吗?或者我应该创建一个包含一行的布局xml,然后在代码中以某种方式复制它吗?如果您不知道需要多少行,那么它听起来像是动态管理事物的ListView的一个很好的用途。如果出于某种原因ListView不是一个选项,您仍然可以为该布局创建一个XML布局文件,并使用LaytinFlater创建所需数量的实例。这将使您的代码更加整洁,并且可能更加健壮。