RelativeLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
layout = new RelativeLayout(this);
setContentView(layout);
ScrollView sc = new ScrollView(this);
sc.setBackgroundColor(Color.YELLOW);
sc.setLayoutParams(layoutParams(300, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.ALIGN_PARENT_RIGHT));
RelativeLayout rl = new RelativeLayout(this);
rl.setBackgroundColor(Color.CYAN);
rl.setLayoutParams(layoutParams(300, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.ALIGN_PARENT_RIGHT));
int k=0;
for(int i=0;i<15;i++){
ImageView iv1 = new ImageView(this);
iv1.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher));
iv1.setLayoutParams(layoutParams(200, 200,0));
iv1.setTranslationY(k);
k+=200;
rl.addView(iv1);
}
sc.addView(rl);
layout.addView(sc);
}
public RelativeLayout.LayoutParams layoutParams(int width,int height,int rule1){
RelativeLayout.LayoutParams lpb = new RelativeLayout.LayoutParams(width,height);
if(rule1 != 0){
lpb.addRule(rule1);
}
return lpb;
}
当我在没有ScrollView的情况下使用RelativeLayout时,它会显示所有图像,但是当我使用ScrollView时,它没有显示所有图像。
请检查代码中的问题在哪里。
它应该在ScrollView中正确对齐。 Desired output
所需输出的XML代码,我试图在java代码中进行转换。
<ScrollView
android:layout_width="300px"
android:layout_height="match_parent"
android:layout_alignParentRight="true" >
<RelativeLayout
android:layout_width="300px"
android:layout_height="fill_parent"
android:background="@android:color/holo_purple" >
<ImageView
android:id="@+id/iv1"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/ic_action_home" />
<ImageView
android:id="@+id/iv2"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_below="@+id/iv1"
android:src="@drawable/ic_action_home" />
<ImageView
android:id="@+id/iv3"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_below="@+id/iv2"
android:src="@drawable/ic_action_home" />
<ImageView
android:id="@+id/iv4"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_below="@+id/iv3"
android:src="@drawable/ic_action_home" />
</RelativeLayout>
</ScrollView>
答案 0 :(得分:0)
ScrollView 是 FrameLayout ,这意味着您应该在其中放置一个孩子,其中包含要滚动的全部内容;这个孩子本身可能是一个 ayout manager ,具有复杂的对象层次结构。
因此,当您使用相对布局时,它正在显示图像,但是当您使用的滚动视图不包含一个布局下的所有图像时它不起作用,因此请尝试将所有图像放在下LinearLayout (推荐)或其他布局。