3

我将 xml 文件膨胀到自定义视图并将其添加到相对布局。

在将自定义视图添加到相对布局时,我正在使用 addRule 方法设置一些规则。但是视图总是在左上角添加,我在这里遗漏了什么吗?

这是我的代码和布局。

MainActivity.java

public class MainActivity extends Activity {

        @Override
        protected void onCreate(android.os.Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.mainLayout);
            RelativeLayout rl = (RelativeLayout)findViewById(R.id.relativeLayout);

            CustomLayout cLayout = new CustomLayout(this);
            RelativeLayout.LayoutParams lp = new  RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            lp.addRule(RelativeLayout.BELOW, R.id.title);
            cLayout.setLayoutParams(lp);
            rl.addView(cLayout);        
        };
    }

自定义布局.java

public class CustomLayout extends RelativeLayout {

    public CustomLayout(Context context) {
        super(context);
        LayoutInflater.from(context).inflate(R.layout.customlayout, this);
    }
}

主布局.xml

<HorizontalScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/contentScroller"
    android:layout_width="wrap_content"
    android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent" >

        <RelativeLayout
            android:id="@+id/mainInfo"
            android:layout_width="400dp"
            android:layout_height="match_parent" >

            <ImageView
                android:id="@+id/mainImage"
                android:layout_width="200dp"
                android:layout_height="200dp"
                android:src="@drawable/lines"/>
            <TextView 
                android:id="@+id/mainDesc" 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@+id/mainImage"
                android:textColor="@android:color/white"
                android:text="@string/desc"/>
        </RelativeLayout>
        <RelativeLayout 
            android:id="@+id/relativeLayout"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:layout_toRightOf="@+id/mainInfo">
            <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:text="@string/titletext"/>
       </RelativeLayout>
    </RelativeLayout>
</HorizontalScrollView>

自定义布局.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/background">
<ImageView
    android:id="@+id/icon"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginRight="10dp"
    android:scaleType="fitStart"
    android:src="@drawable/appicon" >
</ImageView>
<TextView
    android:id="@+id/name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/sampletext"
    android:layout_toRightOf="@+id/icon"/>
</RelativeLayout>
4

0 回答 0