У меня есть RelativeLayout внутри другого Relative Layout.Когда я использую внутренний макет для LinearLayout, код работает отлично. Я читал о многих таких questions здесь, на SO. Иногда упоминалось, что используемые параметры макета должны быть из родительский макет. Я не смог полностью понять это. Это, где я ошибаюсь?Почему setMargins не работает с моим RelativeLayout?
Спасибо заранее, ребята!
МОЕЙ XML FILE
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/rel1" >
<RelativeLayout
android:id="@+id/ll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="120dp"
android:layout_height="60dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:src="@drawable/helo" />
</RelativeLayout>
</RelativeLayout>
Функция Где я использую поле
public void showcopter()
{
ImageView image=(ImageView)findViewById(R.id.imageView1);
RelativeLayout.LayoutParams lp=(RelativeLayout.LayoutParams)(image.getLayoutParams());
lp.leftMargin =0;//(int)((width-150)*density);
lp.topMargin=(int)(hg-(30*density)); //hg is a global variale which stores the screen height
// Log.d("hello_girl",hg+" ");
// lp.setMargins((int) ((width-150)*density),(int)(hg-(30*density)),0,0);
image.setLayoutParams(lp);
image.requestLayout();
}
Да, это сработало спасибо. Просто скопируйте код вставки, вот почему это произошло. Спасибо. –
Рад, что я могу помочь – caojitianlunte