我动态创建了50个按钮 文本设置如下:
btn.Text=result.Rows[i]["Col1"].ToString()+"\n"+result.Rows[i]["Col2"].ToString()
+"\n"+result.Rows[i]["Col3"].ToString();
其中result
是DataTable
& btn
是按钮的对象。
现在问题是某些按钮无法正确显示。
参考下面的截图,
img1中的- 在第一行之后显示不必要的空白行 在img2中 - 文本不是居中对齐的 在img3 - TATAMOTORS 中,即使按钮两侧有空格,也不会以单行显示。
请注意,我没有设置填充,这可能就是原因。
知道如何解决这个问题吗? 此外,如何设置按钮文本的对齐方式以编程方式?
我知道这不是最好的问题,但是花了好几个小时后,我无法破解它。
任何帮助表示赞赏......
答案 0 :(得分:3)
您可以设置按钮的重力以自定义文本的对齐方式。通过使用Gravity
属性在按钮上显示此内容。来自docs:
设置文本的水平对齐方式以及当TextView中有额外空间时将使用的垂直引力超出文本本身所需的范围。
您可以指定的值可在GravityFlags enum中找到。例如:
button.Gravity = GravityFlags.Center;
答案 1 :(得分:1)
可以使用.setGravity(int)
设置按钮内容的对齐方式答案 2 :(得分:1)
在原始问题中,我想知道源文本是否包含一些额外的空格字符?这可以解释img1和img2。
无论如何,我需要在按钮中左对齐文本,这使我进入了这个页面,这是我最终得到的解决方案,基于Alix Bloom的答案:
Button myButton = new Button(getActivity());
myButton(Gravity.LEFT);
答案 3 :(得分:0)
Button myButton = new Button();
myButton.setGravity(Gravity.RIGHT); //LEFT
希望这对您有所帮助。为我工作(我也为此问题苦了一段时间)