2016-04-11 2 views
0

У меня есть задача - сделать такой вид деятельности task Здесь фото занимает одну половину экрана, а текст берет другую. И все отлично работает с весами, но иногда текст может занимать много места и не вписываться в экран, поэтому я покрыл весь свой макет ScrollView, но здесь возникает проблема. Если все не вписывается в один экран, все должно выглядеть так: фото будет занимать половину видимого экрана, а вторая половина будет содержать некоторую часть текста, который может поместиться там, и когда я прокручиваю, все должно быть прокручено, а новый текст будет появляются внизу. Но я не понимаю, как это понимать, веса здесь работают каким-то странным образом, и, как я понял, тэг fillViewPort="true" делает что-то только в том случае, если прокручивать нечего, и когда есть что-то, этот тег ничего не делает. Итак, как я могу правильно взглянуть на мой взгляд?Вес в scrollview

Вот мой XML

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    tools:context="leopikinc.musiciansyandex.MusicianInfo" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/big_photo" 
      android:src="@drawable/test" 
      android:layout_gravity="center" /> 
    </LinearLayout> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Genres" 
      android:id="@+id/genres" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Album count" 
      android:id="@+id/album_count" 
      android:layout_below="@+id/genres" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Track count" 
      android:id="@+id/track_count" 
      android:layout_above="@+id/biography_string" 
      android:layout_toRightOf="@+id/album_count" 
      android:layout_toEndOf="@+id/album_count" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="@string/biography_string_text" 
      android:id="@+id/biography_string" 
      android:layout_below="@+id/album_count" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Biography Text" 
      android:id="@+id/biography_text" 
      android:layout_below="@+id/biography_string" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 
    </RelativeLayout> 
</LinearLayout> 
</ScrollView> 
+1

Я не совсем понимаю, последняя часть, но и для решения этой проблемы, вы можете попробовать эту логику. 1. У вас есть корневая компоновка, которую я предполагаю, это линейный макет с настройкой веса. 2. У вас есть изображение. 3. Теперь вместо простого просмотра прокрутки поместите свой вид прокрутки в линейный макет. Просто просмотр прокрутки и внутри нового линейного макета –

+0

напишите свой xml-код –

+0

@KISHORE_ZE Я не родной спикер извиняюсь). Я хочу, чтобы мой взгляд выглядел на картинке, даже если текст огромен. Таким образом, просмотр просто должен прокручиваться. – Leopik

ответ

1

Я achived своей цели, что делает его programmaticaly. В действии я получил доступ к ImageView и установил его height = половина видимого экрана.

ViewGroup.LayoutParams lp = bigphoto.getLayoutParams(); 
lp.height = getResources().getDisplayMetrics().heightPixels/2; 
bigphoto.setLayoutParams(lp); 

Но до сих пор я не знаю, как сделать это с помощью XML

+0

Отметьте также как правильно –

+0

@KISHORE_ZE Я могу принять свой ответ только через 2 дня – Leopik

+0

Нет Проблема. Извините, я ничего не мог с собой поделать. –

Смежные вопросы