在TextView上使用setMaxLines显示行,但不显示行中的文本

时间:2014-04-21 17:29:56

标签: java android

我有一个应用程序从服务器获取菜单并将其解析为TextViews和按钮,这样做 我有时会有更长的名字,所以我想提出3个第一行的名称(如果它有那么多),问题是,当我将maxLines设置为3时,我看到3行,但只看到第一行中的文本,奇怪的是当我使用setLines到3时,我可以看到3行和文本,但是我只有3行代表只有1行的名称。

代码:

    private void createItemView(Item itemToAdd) {


    /* Constructing a layout panel for all views */
    RelativeLayout viewPanel = new RelativeLayout(this);

    /* Creating view for the name of item */
    TextView itemName = new TextView(this);
    itemName.setTextColor(getResources().getColor(android.R.color.white));
    itemName.setTextSize(itemToAdd.getNameSize());

    itemName.setSingleLine(false);
    itemName.setWidth(300);
    itemName.setMaxLines(3);
    itemName.setText(itemToAdd.getName());

    /* Creating add button view */
    TextView addButton = new TextView(this);
    addButton.setTextColor(getResources().getColor(android.R.color.white));
    addButton.setTextSize(itemToAdd.getNameSize() + 5);
    addButton.setText("+");

    /* Creating price view */
    TextView priceView = new TextView(this);
    priceView.setTextColor(getResources().getColor(android.R.color.white));
    priceView.setTextSize(itemToAdd.getNameSize());
    priceView.setText(itemToAdd.getPrice());

    /* Adding  views to panel */
    viewPanel.addView(addButton, rightParams);
    viewPanel.addView(priceView, centerParams);
    viewPanel.addView(itemName, leftParams);

    /* adding view panel to layout */
    menuLayout.addView(viewPanel);
}

观点参数:

    /* Constructing Linear layout here */
    menuLayout = new LinearLayout(this);
    menuLayout.setOrientation(LinearLayout.VERTICAL);
    menuLayout.setBackgroundColor(getResources().getColor(android.R.color.background_dark));

    /* Constructing rules for relative layout here */
    rightParams =  new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    leftParams =  new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    centerParams =  new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    /* Adding rules */
    rightParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
    leftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
    centerParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);

照片:

cant see text

我很抱歉我的英文不好,谢谢!

1 个答案:

答案 0 :(得分:0)

似乎这样下一行有问题:

        leftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);

由于某种原因(我不确定为什么,也许是一个错误)它不起作用。 您可以不添加参数,相对布局会将您的文本视图放在布局的左侧,您将看到文本。

希望有所帮助