Почему мой взгляд не виден? - PullRequest
       20

Почему мой взгляд не виден?

0 голосов
/ 07 сентября 2011

Я пытаюсь создать другой вид поверх моего GLSurfaceView, мне удалось сделать это раньше, но по какой-то причине в этот раз ничего не видно. Я делаю все это в коде, но ниже показано, как это должно работать с XML:

setContentView(R.layout.main);
adLinearLayout = (LinearLayout)findViewById(R.id.AdLinearLayout);

//If ad is found on server...Do this (view is passed into the method)
LayoutParams layout = new LayoutParams(adLinearLayout.getMeasuredWidth(), (adLinearLayout.getMeasuredWidth()*10)/64);
adView.setLayoutParams(layout);
adLinearLayout.removeAllViews();
adLinearLayout.addView(adView);

И моя интерпретация этого такова:

glView = new GLSurfaceView(this);
glView.setRenderer(this);
setContentView(glView);
adLinearLayout = new LinearLayout(this);
adLinearLayout.setGravity(Gravity.CENTER | Gravity.BOTTOM);
this.addContentView(adLinearLayout, new LayoutParams(480, 150));

//If ad is found on server...Do This  (view is passed into the method)
LayoutParams layout = new LayoutParams(adLinearLayout.getMeasuredWidth(), (adLinearLayout.getMeasuredWidth()*10)/64);
view.setLayoutParams(layout);
adLinearLayout.removeAllViews();
adLinearLayout.addView(view, new LayoutParams(LayoutParams.WRAP_CONTENT ,LayoutParams.WRAP_CONTENT));

Это никогда не отображается на экране, но чего-то не хватает?

1 Ответ

0 голосов
/ 07 сентября 2011

Вам нужно использовать структуру кадра, чтобы сложить 2 вида друг на друга.

Я не уверен, как вы сделали перекрытие с помощью linearlayout ранее. Но по определению LinearLayout используется для сборки дочерних представлений в горизонтальном или вертикальном порядке.

О макете фрейма, это из андроид документации

Дочерние представления отрисовываются в стеке с последним добавленным дочерним видом. наверху. Размер FrameLayout - это размер его самого большого дочернего элемента. (плюс заполнение), видимый или нет (если позволяет родительский элемент FrameLayout).

Вы также можете добиться некоторого перекрытия с помощью RelativeLayout, но FrameLayout - правильный путь.

...