Представление, перекрывающее другое представление в LinearLayout - PullRequest
0 голосов
/ 02 ноября 2011

У меня странная проблема.

Я определяю LinearLayout с вертикальной ориентацией.

Я определяю ImageView и другой пользовательский вид.

, если добавляю пользовательский.а затем изображение, все в порядке, и я вижу их обоих.

если я сначала добавляю изображение один, я вижу только изображение.

Я пробую любой вариант LayoutParams, и ничего не работает.

что я здесь не так делаю?

Редактировать - Я даже попробовал какую-то кнопку по умолчанию, чтобы проверить, что это не мое пользовательское представление, которое вызывает это

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
layout = new LinearLayout(getApplicationContext());
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
ImageView image = new ImageView(getApplicationContext());
image.setImageDrawable(getResources().getDrawable(R.drawable.image_strip));
Button button = new Button(getApplicationContext());
button.setText("test");
layout.addView(image, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
layout.addView(button, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
 setContentView(layout);
}

Я нашел способ, но он все еще имеет проблему.

Я использовал RelativeLayout и выровнял кнопку по низу родительского элемента (макет), и я установил изображение так, чтобы оно было над кнопкой.

теперь я вижу их обоих, но проблема в том, что ширина изображения также уменьшается

Ответы [ 2 ]

0 голосов
/ 12 июня 2015
 <ProgressBar
    android:layout_height="50dp"
    android:layout_width="50dp"
    android:id="@+id/myprogress"
    android:layout_gravity="center_horizontal"
    android:visibility="gone"
    style="@android:style/Widget.Holo.Light.ProgressBar.Small"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/title"       />



<ImageView
    android:layout_height="165dp"
    android:id="@+id/imageView1"
    android:layout_width="125dp"
    android:scaleType="fitXY"
    android:visibility="invisible"
    android:layout_marginTop="-30dp"
    android:layout_gravity="center_horizontal"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"/>

Проверьте расположение выше индикатора выполнения и изображения.То, что я хотел, чтобы было перекрытие просмотра изображений через индикатор выполнения, и я достиг того же самого, установив android: layout_marginTop = "- 30dp" для imageview

0 голосов
/ 02 ноября 2011

Насколько велик ваш имидж? Если он больше, чем область просмотра, он собирается нажать кнопку выключения экрана. Если кнопка первая, вы ее увидите. Если кнопка находится после изображения, вы не будете. Это было бы мое первое предположение. Вы можете обернуть все это (родительский LinearLayout) в ScrollView, чтобы увидеть, делает ли он это. Если это так, вам нужно каким-то образом обрезать изображение.

Если изображение больше размера экрана, попробуйте следующее. Создайте родительский LL, как он есть, затем создайте ScrollView и добавьте в него изображение. Установите layout_weight ScrollView в 1 (или что-то еще), и НЕ устанавливайте layout_weight кнопки. Это должно заставить ScrollView занимать как можно больше места, но оставить место для кнопки и позволить вам прокручивать, чтобы увидеть изображение.

У меня нет хорошего кода для этого в коде. Я делаю большинство макетов в XML (и не для понтификата, но я бы посоветовал вам то же самое;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...