Mam następujący kod. Jak widać nic skomplikowanego.
Jest to uproszczenie tego przykładu: http://javatechig.com/android/android-framelayout-example
Upraszczam, bo i tamten przykład nie działa prawidłowo i rozmieszczenie nie jest takie jak na obrazku.
Nie ma tu XML i jak to zrobić z XML wiem i działa, jak bez nie wiem. Najważniejsze, że nie chcę teraz XML.
Mam tło czerwone i to działa tak jak powinno.
Na tle chcę na środku mieć LinearLayouta o określonych wymiarach, a więc wiele nie wymagam ;).
Niestety ani przykład ze strony podanej wyżej, ani nawet mój uproszczony do maksimum nie działa i cały czas otrzymuje zarówno na emulatorze jak i rzeczywistym urządzeniu ten sam efekt, tj. czerwone tło i zielony prostokąt na górze z lewej strony. Przykład ze strony jest identyczny, czyli wszystko mi się pozycjonuje wg górnego lewego narożnika.
Żadna manipulacja rozmieszczeniem nie działa.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
widok_glowny = new FrameLayout(this);
widok_glowny.setBackgroundColor(Color.parseColor("#FF0000"));
widok_glowny.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));
setContentView(widok_glowny);
LinearLayout abc = new LinearLayout(this);
abc.setGravity(Gravity.CENTER);
abc.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams wlp = new LinearLayout.LayoutParams(147,147);
wlp.gravity = Gravity.CENTER;
wlp.setMargins(0, 0, 0, 0);
abc.setLayoutParams(wlp);
abc.setBackgroundColor(Color.parseColor("#00FF00"));
widok_glowny.addView(abc);
//setContentView(widok_glowny);//czy tu czy tam i tak nie działa
}
Dorzucam jeszcze XML aplikacji.
Nie wiem czy to potrzebne, bo ta sama aplikacja jak wywołam setContentView z gotowym layoutem z XML to rozmieszczenie jest ok.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package=..........."
android:versionCode="1"
android:versionName="1.0" android:installLocation="auto">
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity android:name=".........GlowneOkno" android:label="@string/app_name" android:hardwareAccelerated="true" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
@style/AppTheme