Android 如何使所有子视图位于水平线布局的垂直中心,向其添加视图后重心是垂直的
这是一个水平Android 如何使所有子视图位于水平线布局的垂直中心,向其添加视图后重心是垂直的,android,Android,这是一个水平线性布局,我将其重心设置为垂直中心,然后向线性布局添加两个视图,第一个视图的高度比另一个视图大,结果是第二个视图与第一个视图的顶部对齐,而不是在线性布局的垂直中心。 如何使所有子视图位于垂直中心,有什么想法吗 这是我的密码: Context context = getActivity(); mPictureContainer = new LinearLayout(context); mPictureContainer.setBackgroundColor(0xffffffff); m
线性布局
,我将其重心设置为垂直中心
,然后向线性布局
添加两个视图,第一个视图的高度比另一个视图大,结果是第二个视图与第一个视图的顶部对齐,而不是在线性布局
的垂直中心。
如何使所有子视图位于垂直中心,有什么想法吗
这是我的密码:
Context context = getActivity();
mPictureContainer = new LinearLayout(context);
mPictureContainer.setBackgroundColor(0xffffffff);
mPictureContainer.setGravity(Gravity.CENTER_VERTICAL);
mPictureContainer.setOrientation(LinearLayout.HORIZONTAL);
int leftRightMargin = getResources().getDimensionPixelSize(R.dimen.leftRightMargin);
mPictureContainer.setPadding(leftRightMargin, 0, leftRightMargin, 0);
//...
mAddPicBtn = new ImageView(context);
mAddPicBtn.setLayoutParams(new LinearLayout.LayoutParams(Utils.dip2px(77f), Utils.dip2px(77f)));
mAddPicBtn.setScaleType(ScaleType.CENTER_CROP);
mAddPicBtn.setImageDrawable(StateListFactory.createStateListDrawable(R.drawable.add_prs, -1, R.drawable.add));
//...
mPictureContainer.removeAllViews();
ArrayList<String> pictures = (ArrayList<String>) data.getSerializableExtra("pictures");
int size = pictures.size();
for (int i = 0; i < size; i++) {
String path = pictures.get(i);
final View view = LayoutInflater.from(getActivity()).inflate(R.layout.status_pic_item, mPictureContainer, false);
view.setTag(path);
ImageView imageView = (ImageView) view.findViewById(R.id.picture);
ImageView delPicBtn = (ImageView) view.findViewById(R.id.delPicBtn);
delPicBtn.setImageDrawable(StateListFactory.createStateListDrawable(R.drawable.del_prs, -1, R.drawable.del));
delPicBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mPictureContainer.removeView(view);
if (mPictureContainer.getChildCount() < 4 && mAddPicBtn.getParent() != mPictureContainer) {
mPictureContainer.addView(mAddPicBtn);
}
}
});
mPictureContainer.addView(view, i);
ImageLoader.loadImage(imageView, "file://" + path);
}
if (mPictureContainer.getChildCount() < 4) {
mPictureContainer.addView(mAddPicBtn);
}
下面是截图:
你也可以发布你的代码吗?为什么你不使用RelativeLayout进行这种表示?@Sharj,我已经发布了我的代码和截图。很抱歉这么晚才回复。@RobinHood,我以编程方式设置水平:
mPictureContainer.setOrientation(LinearLayout.horizontal)代码>我不确定。但我认为你的观点是垂直居中的。只是带有X的图像有一些空白。尝试使用开发人员选项“绘制视图边界”进行检查。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="81dp"
android:layout_height="81dp"
android:layout_marginRight="3dp" >
<ImageView
android:id="@+id/picture"
android:layout_width="77dp"
android:layout_height="77dp"
android:layout_alignParentBottom="true"
android:scaleType="centerCrop" />
<ImageView
android:id="@+id/delPicBtn"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:clickable="true" />
</RelativeLayout>