我有一个应用程序从服务器获取菜单并将其解析为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);
照片:
我很抱歉我的英文不好,谢谢!
答案 0 :(得分:0)
似乎这样下一行有问题:
leftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
由于某种原因(我不确定为什么,也许是一个错误)它不起作用。 您可以不添加参数,相对布局会将您的文本视图放在布局的左侧,您将看到文本。
希望有所帮助