我以编程方式在任意位置创建一个TextView。问题是:如果文本足够长(例如“黄色”),则TextView超出范围。

我的密码

private TextView createField(int textColor, String text){
    int width = Random(10, 500);
    int height = Random(10, 500);
    TextView valueTV = new TextView(this);
    valueTV.setText(text);
    valueTV.setTextColor(textColor);
    valueTV.setTextSize(25);
    valueTV.setTypeface(null, Typeface.BOLD);
    valueTV.setSingleLine(true);
    valueTV.setMaxLines(1);

    LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    llp.setMargins(width, height, 50, 50); // llp.setMargins(left, top, right, bottom);
    valueTV.setLayoutParams(llp);

    return valueTV;
}


如果文本在屏幕上很长,如何自动将TextView移到左侧?

最佳答案

如果要动态添加视图,则首先需要获取当前设备屏幕的宽度和高度。使用以下代码获取屏幕的宽度:

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels;


然后,计算每一次以添加视图,并在单行中添加总宽度可用的剩余空间。我的建议是请为每行使用每个单独的布局。
我希望这能帮到您。

08-03 12:58