Переключение между представлениями в FrameLayout из дочернего представления - PullRequest
0 голосов
/ 08 мая 2011

В настоящее время у меня есть SurfaceView (с именем BoardView), который хранится в FrameLayout. Есть еще один LinearLayout (l1), который хранится в этом FrameLayout (f1), который содержит EditText. Я хочу иметь возможность вывести EditText на фронт из моего BoardView. Это возможно? Я попытался с помощью getParent (). YieldChildToFront (); но это не сработало. Есть идеи?

public class Board extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

    //use a frame layout so you can also display a dialog box
    // allows more than one view to be used
    FrameLayout f1 = new FrameLayout(this);
    LinearLayout l1 = new LinearLayout(this);
    EditText edit = new EditText(this);

    l1.setOrientation(LinearLayout.VERTICAL);
    l1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
            LayoutParams.WRAP_CONTENT));
    edit.setText("Enter your name!");
    l1.addView(edit);

    f1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
            LayoutParams.FILL_PARENT));
    f1.addView(l1);
    f1.addView(new BoardView(this));

    setContentView(f1);

    //setContentView(new BoardView(this));
}

}

1 Ответ

1 голос
/ 08 мая 2011

Звучит довольно глупо, но попробуйте l1.bringToFront() и посмотрите, работает ли это? Или просто добавьте l1 second:

f1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
            LayoutParams.FILL_PARENT));
    f1.addView(new BoardView(this));
    f1.addView(l1);

и текст редактирования будет сверху.

Дайте мне знать, если это работает.

...