Mein Hauptlayout main.xml enthält einfach zwei LinearLayouts:
- Der 1.
LinearLayout
Gastgeber aVideoView
und aButton
, - Der 2.
LinearLayout
hostet einEditText
, und diesLinearLayout
hat den Sichtbarkeitswert auf " GONE " gesetzt (android:visibility="gone"
)
Wie unten:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/first_ll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<VideoView
android:id="@+id/my_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="9"
/>
<Button
android:id="@+id/my_btn"
android:layout_width="30dip"
android:layout_height="30dip"
android:layout_gravity="right|bottom"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/second_ll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="2dip"
android:visibility="gone"
>
<EditText
android:id="@+id/edit_text_field"
android:layout_height="40dip"
android:layout_width="fill_parent"
android:layout_weight="5"
android:layout_gravity="center_vertical"
/>
</LinearLayout>
</LinearLayout>
Ich implementierte erfolgreich das Merkmal , dass , wenn die Button
(mit der ID my_btn) gedrückt wird, die zweite LinearLayout
mit EditText
ist Feld angezeigt, mit dem folgenden Java - Code:
LinearLayout secondLL = (LinearLayout) findViewById(R.id.second_ll);
Button myBtn = (Button) findViewById(R.id.my_btn);
myBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
int visibility = secondLL.getVisibility();
if(visibility==View.GONE)
secondLL.setVisibility(View.VISIBLE);
}
});
Mit dem obigen Java-Code wird der 2. LinearLayout
mit EditText
wie unter dem 1. angehängt angezeigt LinearLayout
, was sinnvoll ist.
ABER , was ich brauche ist: Wenn Button
(id: my_btn) gedrückt wird, wird das 2. LinearLayout
mit EditText
oben auf dem 1. angezeigtLinearLayout
, was so aussieht, als ob das 2. LinearLayout
mit EditText
vom unteren Bildschirmrand aufsteigt, und das 2. LinearLayout
mit EditText
nur einen Teil des Bildschirm von unten, das ist das 1. LinearLayout, das noch sichtbar ist, wie das folgende Bild zeigt:
Wenn also Button
(id: my_btn) gedrückt wird, wie wird die 2. LinearLayout
mit EditText
über der 1. angezeigt, LinearLayout
anstatt die 2. programmgesteuert an die 1.LinearLayout
unter der 1. LinearLayout
anzuhängen?
TextView
oben? liegt es daran, dass es in der Auflistung an zweiter Stelle steht?