Java 在“重心”相对布局中向左对齐充气视图
我有一个相对的布局,作为一个按钮,文本内容正在被动态更改。此文本使用Java 在“重心”相对布局中向左对齐充气视图,java,android,android-layout,Java,Android,Android Layout,我有一个相对的布局,作为一个按钮,文本内容正在被动态更改。此文本使用android:gravity=“center”属性在布局中居中。问题是,我需要在同一相对布局中膨胀另一个布局,但要将其向左对齐。我可以很好地放大视图,但它总是显示在中心(正如预期的那样,因为布局具有重心)。看起来像这样 灰色框是父相对布局,绿色框是我试图向左对齐的视图。我尝试过为各种设置边距-包括父视图一半宽度的左偏移-但到目前为止没有任何效果。有办法做到这一点吗?可能值得补充的是,父相对布局(灰色框)的宽度会有所不同,因此
android:gravity=“center”
属性在布局中居中。问题是,我需要在同一相对布局中膨胀另一个布局,但要将其向左对齐。我可以很好地放大视图,但它总是显示在中心(正如预期的那样,因为布局具有重心)。看起来像这样
灰色框是父相对布局,绿色框是我试图向左对齐的视图。我尝试过为各种设置边距-包括父视图一半宽度的左偏移-但到目前为止没有任何效果。有办法做到这一点吗?可能值得补充的是,父相对布局(灰色框)的宽度会有所不同,因此无论大小,该解决方案都应该更好地工作
正在膨胀的绿色视图的XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="20dp"
android:layout_height="fill_parent"
android:background="@color/pending_color"
android:paddingLeft="5dp"
android:id="@+id/ribbon">
如果我的理解正确,那么您有一个相对的父视图,并且需要将子1(文本视图)居中,子2(线性布局)向左对齐 尝试: 儿童1
android:layout_centerInParent="true"
or
android:layout_centerHorizontal="true"
儿童2
android:layout_alignParentLeft="true"
编辑:
您可以将child 2封装在另一个RelativeLayout中
parentlayout
child1
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<child2
android:layout_alignParentLeft="true">
</RelativeLayout>
父布局
孩子1
所以,第一个问题。传入父视图组和false
,表示您还不想附加它:
View inflatedView = mLayoutInflater.inflate(R.layout.pending_ribbon, this, false);
完成此操作后,视图应该已经具有LayoutParams,您不必手动设置它们:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParms) inflatedView.getLayoutParams();
将ALIGN\u PARENT\u LEFT
规则添加到膨胀视图中(RelativeLayout
实际上不使用重力):
然后添加视图,您就可以开始了:
addView(inflatedView);
我试过了,但没用。问题是父视图(相对布局)具有中心重力,并且该重力也需要能够动态设置。因此,由于父视图的重力居中,我无法使子视图以不同的方式对齐。啊,就是这样。非常感谢你的帮助!
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
addView(inflatedView);