Próbuję umieścić przycisk w innym miejscu, używając układu absolutnego. Używam następującego pliku xml:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/bcgrd">
<Button
android:id="@+id/start_challenge"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Start Challenge"
android:textColor= "@color/light_gray"
android:background="@color/background">
</Button>
</AbsoluteLayout>
plik Java zawiera następujący kod:
Button start_it = (Button)findViewById(R.id.start_challenge);
start_it.layout(200, 200, 200, 200);
ale nic się nie dzieje („200” to tylko przykład. czy ktoś może mi powiedzieć, co robię źle.
Z góry dziękuję.
Odpowiedzi:
0 dla odpowiedzi № 1To, co robisz źle, to używanie AbsoluteLayout. :) Poważnie, naprawdę nie powinieneś tego używać; zamiast tego spróbuj użyć FrameLayout.
Jednak, aby odpowiedzieć na twoje pytanie, nie powinieneś nazywać go układem, zrób to zamiast tego:
AbsoluteLayout.LayoutParams params = (AbsoluteLayout.LayoutParams)start_it.getLayoutParams();
params.x = 200;
params.y = 200;
start_it.setLayoutParams(params);
Lub mniej kodu, możesz to zrobić zamiast tego:
start_it.setLayoutParams(new AbsoluteLayout.LayoutParams(
start_it.getWidth(), start_it.getHeight(), 200, 200));