我正在使用适配器为每个项目生成一个视图。视图需要在其下方显示带有居中文本的图像。我创建一个线性布局并添加图像视图和文本视图。
要显示问题,我已将背景颜色更改为绿色表示线性布局,红色表示文本视图...
显然,文字显示左对齐而不是居中。以下是适配器GetView方法中的简单代码...
public override View GetView(int position, View convertView, ViewGroup parent)
{
ImageView imageView = new ImageView(_context);
LinearLayout.LayoutParams imageViewParam = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent);
imageView.LayoutParameters = imageViewParam;
imageView.Id = 1000 + position;
imageView.SetImageResource(Resource.Drawable.Code);
TextView textView = new TextView(_context);
LinearLayout.LayoutParams textViewParam = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent);
textView.LayoutParameters = textViewParam;
textView.Text = OPTIONS_TEXT[position];
textView.SetBackgroundColor(Color.Red);
textView.SetForegroundGravity(GravityFlags.CenterHorizontal);
LinearLayout linear = new LinearLayout(_context);
linear.LayoutParameters = new GridView.LayoutParams(200, 172);
linear.SetBackgroundColor(Color.Green);
linear.Orientation = Orientation.Vertical;
linear.AddView(imageView);
linear.AddView(textView);
return linear;
}
据我所知,在以编程方式生成视图时无法设置 layout_gravity 设置,因此我尝试设置前景重力但完全没有效果。
我已经尝试了所有我能想到的东西,但没有任何东西让文本居中!
答案 0 :(得分:1)
将重心设置为TextView的LinearLayout.LayoutParams,即
textViewParam.gravity = Gravity.CENTER;