FrameLayout

  • Das FrameLayout dient hauptsächlich als Container eines "großen" Elementes à ListView, Picture.
  • Alle Elemente werden immer links / oben angezeigt.
  • Man kann mehrere Elemente in einem FrameLayout eintragen.
  • Diese werden, wenn sichtbar, angezeigt.
  • Das FrameLayout positioniert aber auch UI-Elemente übereinander
  • Es entspricht dem Card-Layout in Swing bzw. TabControl in WPF
  • Die Umschaltung geschieht mittel Java-Code

Definition


<FrameLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">


 

</FrameLayout>



Beispiel

Das untere Beispiel zeigt ein Bild und einen Text.
Wenn Sie auf den Text klicken verschwindet der Text und das Bild erscheint.
Wenn Sie auf das Bild klicken verschwindet das Bild und der Text erscheint.

Komplettes Projekt
FrameLayout1.7z

XML-Layout


<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">



    <ImageView
        android:id="@+id/image1"
        android:src="@mipmap/ic_launcher"
        android:scaleType="fitCenter"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:gravity="center"
        android:onClick="image_click" />
    <TextView
        android:id="@+id/textview1"
        android:text="Dies ist ein Bild"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:textSize="30sp"
        android:gravity="center"
        android:onClick="textview_click"
        />
    <!--  android:visibility="gone"  -->
</FrameLayout>

Java-Code


package com.example.kraft_300.testframelayout1;

import android.media.Image;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    private TextView textview1 = null;
    private ImageView image1 = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textview1 = (TextView) findViewById(R.id.textview1);
        image1 = (ImageView)findViewById(R.id.image1);
    }  // onCreate

    public void image_click(View view) {
        textview1.setVisibility(View.VISIBLE);
        image1.setVisibility(View.GONE);
    }

    public void textview_click(View view) {
        textview1.setVisibility(View.GONE);
        image1.setVisibility(View.VISIBLE);
    }
}

Startbild der App
Startbild der App
Die Textview wurde angeklickt
Die Textview wurde angeklickt
Ds Bild wurde angeklickt
Ds Bild wurde angeklickt