如何在其他布局中对齐LinearLayout的高度

时间:2014-05-01 18:18:49

标签: android height android-linearlayout

我有以下布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

    <RelativeLayout
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:orientation="horizontal">
             <ImageButton
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:src="@drawable/ic_btn_find_prev"
                 android:contentDescription=""/>
             <LinearLayout
                    android:id="@+id/fragment_counter"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="@android:color/holo_red_dark"
                    android:gravity="center_vertical|center_horizontal"/>
             <ImageButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_btn_find_next"
                    android:layout_alignParentRight="true"
                    android:contentDescription=""/>
    </RelativeLayout>

</RelativeLayout>

并遵循ui结果:

enter image description here

我想要像YELLOW LINE那样拥有高度的红色布局。如果我设置高度像match_parent或fill_parent红色布局填充所有屏幕。请帮我收到正确的结果。

EDITED 我使用LinearLayout(@ + id / fragment_counter)来编程添加元素。

final TextView item = new TextView(this);
item.setGravity(Gravity.CENTER);
item.setBackgroundResource(R.drawable.shape);
item.setText("1");
final RelativeLayout.LayoutParams params = new     RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
params.setMargins(5, 0, 5, 0);
item.setLayoutParams(params);

来自示例:item&#34; 1&#34;已添加,应该在布局中居中。如果红色布局像黄色线条&#34; 1&#34;将正确居中。

2 个答案:

答案 0 :(得分:0)

RelativeLayout layout_height属性设置为特定高度(相对于按钮绘图的大小),并使用fill_parent LinearLayout属性上的layout_height

另外假设您想要顶部的按钮,您需要重新排序该布局。并且不要忘记设置LinearLayout的方向。

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="50dip"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/fragment_counter"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@android:color/holo_red_dark"
        android:gravity="center_vertical|center_horizontal"
        android:orientation="horizontal" />
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription=""
        android:src="@drawable/ic_btn_find_prev" />


    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:contentDescription=""
        android:src="@drawable/ic_btn_find_next" />
</RelativeLayout>

答案 1 :(得分:0)

试试这个......

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
    android:id="@+id/textView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:gravity="center"
    android:textSize="36sp" />

   <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@android:color/holo_red_dark"
        android:orientation="horizontal" >

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:contentDescription=""
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/fragment_counter"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:padding="10dp"
            android:layout_centerInParent="true"
            android:background="#404040"
            android:gravity="center_vertical|center_horizontal"
            android:text="FRAG COUNT: 2"
            android:textColor="#FFFFFF" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:contentDescription=""
            android:src="@drawable/ic_launcher" />
    </RelativeLayout></RelativeLayout>

enter image description here