JAVA中的Android流布局



我在JAVA文件的三个文本视图中以水平方向给出了三句话,但只有两个文本视图,即只有两句话,但是由于移动设备的分辨率,第三句话消失了。我的问题是如何从第二行的起始位置而不是最后一行获得新行中的第三个文本视图。

public class MainActivity extends Activity {
private LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    findViewById();
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    layoutParams.setMargins(10, 15, 10, 10);
    TextView tvTextsecond = new TextView(this);
    tvTextsecond.setText("Heywhatrudoingtoday");
    tvTextsecond.setLayoutParams(layoutParams);
    tvTextsecond.setBackgroundColor(Color.RED);
    tvTextsecond.setTextColor(Color.WHITE);
    //tvTextsecond.setSingleLine(true);
    layout.addView(tvTextsecond);
    TextView tvTextthird = new TextView(this);
    tvTextthird.setText("Haiitssundaytowork");
    tvTextthird.setLayoutParams(layoutParams);
    tvTextthird.setBackgroundColor(Color.BLUE);
    tvTextthird.setTextColor(Color.WHITE);
    //tvTextthird.setSingleLine(true);
    layout.addView(tvTextthird);
    TextView tvTextfourth = new TextView(this);
    tvTextfourth.setText("Owebullshitruuselessfellow");
    tvTextfourth.setLayoutParams(layoutParams);
    tvTextfourth.setBackgroundColor(Color.YELLOW);
    tvTextfourth.setTextColor(Color.WHITE);
    //tvTextfourth.setSingleLine(true);
    layout.addView(tvTextfourth);
}
private void findViewById() {
    layout = (LinearLayout) findViewById(R.id.flowLayout);
}
}

你看不到第三个TextView的原因是你的布局是水平的,虽然前两个TextView适合屏幕大小,但第三个被推到了外面。

要解决此问题,您可以执行以下几个步骤:

1.在XML或java文件中将布局方向更改为垂直,这样TextView将一个接一个地垂直显示。

2.如果您想在一行中保留多个TextView,那么您仍然应该将主布局方向设置为垂直,但对于TextView的每一行,使用代码创建一个水平方向的新布局,并将TextView添加到此布局中。

LinearLayout tvRow = new LinearLayout();
tvRow.addView(firstTextView);
tvRow.addView(secondTextView);

最后将此布局添加到您的主布局中:

mailLayout.addView(tvRow);

相关内容

  • 没有找到相关文章

最新更新