我将 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>