1

我在使用 LinearLayout 时遇到问题。我在LinearLayout中有两个项目..一个是带有包裹宽度的Linearlayout,另一个是简单的textview...我的包裹宽度LinearLayout从Activity获取宽度..它工作得很好..但是我有第二个项目的textview问题..它从我包装的LinearLayout开始,无论我的包装布局得到什么宽度,textview都从它开始。我想让那个textview相对于Parent Linearlayout在中心对齐。这是我的xml ..`

                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="1"
                            android:background="@drawable/graph_panel_bg_one"
                            android:orientation="horizontal" >

                            <LinearLayout
                                android:id="@+id/looser_left_jab_force_panel"
                                android:layout_width="wrap_content"
                                android:layout_height="match_parent"
                                android:background="@drawable/force_panel_gradient" >
                            </LinearLayout>

                            <TextView
                                android:id="@+id/looser_left_jab_force"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:gravity="center"
                                android:text=""
                                android:textColor="#F18B86"
                                android:textSize="10sp" />
                        </LinearLayout>

                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="1"
                            android:background="@drawable/graph_panel_bg_one" >

                            <LinearLayout
                                android:id="@+id/looser_left_jab_speed_panel"
                                android:layout_width="wrap_content"
                                android:layout_height="match_parent"
                                android:background="@drawable/speed_panel_gradient" >
                            </LinearLayout>

                            <TextView
                                android:id="@+id/looser_left_jab_speed"
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:gravity="center"
                                android:text="12222"
                                android:textColor="#CEE2E9"
                                android:textSize="10sp" />
                        </LinearLayout>
                    </LinearLayout>`
4

2 回答 2

1

将您的 TextView 宽度设置为"wrap_content"

于 2013-07-05T05:29:15.777 回答
1

LinearLayout是一个视图组,可将所有子项在一个方向(垂直或水平)上对齐。您可以使用 android:orientation 属性指定布局方向。

LinearLayout 的所有子元素一个接一个地堆叠,因此垂直列表每行只有一个子元素,无论它们有多宽,水平列表只有一行高(最高子元素的高度,加上填充)。LinearLayout 尊重子级之间的边距和每个子级的重力(右对齐、居中对齐或左对齐)。

它从我包装的 LinearLayout 开始,无论我包装的布局得到什么宽度

这是因为您的父线性布局“ android:orientation="horizontal”,如果您设置“android:orientation="vertical",它可能会从您包装的 LinearLayout 开始,无论您包装的布局获得的高度如何。

通过 LinearLayout 可能很难实现您想要的方式。

我也建议使用相对布局。以您想要的方式调整孩子是有帮助的。

注意:对可能与 LinearLayout 重叠的 textview 采取适当的操作。

于 2013-07-05T06:15:57.297 回答