【发布时间】:2017-12-27 02:42:52
【问题描述】:
我正在以编程方式创建一个线性布局,方向 = 垂直。 在该线性布局中,我还以编程方式创建 2 或 3 个对象:
1-图像视图
2-文本视图(如果需要,我会创建此对象)
3-单选按钮
问题是我如何将单选按钮置于其父级的中心?
编辑: 我的代码在 Xamarin.Android C# 中,但我认为很容易将其转换为 Java Android
LinearLayout mainLinearLayout = new LinearLayout(this)
{
Orientation = Orientation.Vertical
};
LinearLayout sub1LinearLayout = new LinearLayout(this)
{
//Set orientation = horizontal
Orientation = Orientation.Horizontal
};
//Add the sub1LinearLayout to the mainLinearLayout
mainLinearLayout.AddView(sub1LinearLayout);
for (int j = 0; j < count; j++)
{
LinearLayout sub2LinearLayout = new LinearLayout(this)
{
Orientation = Orientation.Vertical
};
LinearLayout.LayoutParams layoutParams =
new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent,
ViewGroup.LayoutParams.WrapContent);
RadioButton Box = new RadioButton(this){
//Set gravity = center
Gravity = GravityFlags.Center
};
switch (SomeMode)
{
//Show radio button + image
case Mode.ShowBoxAndImage:
{
ImageView image = new ImageView(this);
Bitmap imageBitmap = BitmapFactory.DecodeFile(path);
image.SetImageBitmap(imageBitmap);
sub2LinearLayout.AddView(image);
layoutParams.SetMargins(padding, 0, 2 * padding, 0);
break;
}
//Show radio button + its text + image
case Mode.ShowBoxAndImageAndText:
{
ImageView image = new ImageView(this);
Bitmap imageBitmap = BitmapFactory.DecodeFile(path);
image.SetImageBitmap(imageBitmap);
sub2LinearLayout.AddView(image);
TextView Name = new TextView(this)
{
Text = name,
TextSize = nameTextSize,
//Set gravity = center
Gravity = GravityFlags.Center
};
Name.SetTextColor(new Color(ContextCompat.GetColor(this, Resource.Color.colorBlack)));
sub2LinearLayout.AddView(Name);
layoutParams.SetMargins(padding, 0, 2 * padding, 0);
break;
}
}
}
sub2LinearLayout.AddView(Box);
sub2LinearLayout.LayoutParameters = layoutParams;
sub1LinearLayout.AddView(sub2LinearLayout);
//Set sub2LinearLayout gravity = bottom
sub2LinearLayout.SetGravity(GravityFlags.Bottom);
【问题讨论】:
-
提供你的xml代码
-
你的 xml 在哪里?
-
我正在以编程方式创建所有东西,这里没有 xml
-
你设置
Gravity.CENTER了吗? -
以编程方式使用 set Gravity 尝试一次 yourView.setGravity(Center)
标签: android android-layout radio-button android-linearlayout center