2014-01-16 5 views
0

В моем приложении у меня есть действие со следующим графиком. И у меня есть proplem с layout_weight. Когда я использую весы с представлениями, встроенными в контейнер, которые также имеют весовой параметр, значения этого не работают. Можно ли использовать встроенный вес в Android?Встраиваемые виды layout_weight

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:weightSum="10" > 

    <RelativeLayout 
     android:id="@+id/headerLayout" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_gravity="top" 
     android:layout_weight="1" 
     android:background="@color/header_color" 
     android:orientation="horizontal" > 

     <View 
      android:id="@+id/main_backView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:background="@null" /> 

     <ImageButton 
      android:id="@+id/menuBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/appNameText" 
      android:layout_alignParentLeft="true" 
      android:layout_alignTop="@+id/appNameText" 
      android:layout_centerVertical="true" 
      android:layout_gravity="left" 
      android:layout_marginLeft="30px" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/menu" 
      tools:ignore="ContentDescription" /> 

     <TextView 
      android:id="@+id/mapClickText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:layout_marginRight="30px" 
      android:text="@string/map_text" 
      android:textColor="@android:color/white" 
      android:textSize="21sp" /> 

     <TextView 
      android:id="@+id/appNameText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:text="@string/app_name" 
      android:textColor="@android:color/white" 
      android:textSize="21sp" /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_gravity="center" 
     android:layout_weight="8" > 

     <ScrollView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:fillViewport="true" > 

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

       <RelativeLayout 
        android:id="@+id/imagePager" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_gravity="top" 
        android:layout_weight="4" 
        android:background="@android:color/white" > 

        <mobi.esys.custom_components.AutoSwitchPager 
         android:id="@+id/pager" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" /> 

        <com.viewpagerindicator.CirclePageIndicator 
         android:id="@+id/indicator" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:layout_alignParentBottom="true" 
         android:layout_centerHorizontal="true" 
         android:layout_marginBottom="20px" 
         android:padding="2px" /> 

        <TextView 
         android:id="@+id/bannerText" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_centerHorizontal="true" 
         android:layout_centerVertical="true" 
         android:textColor="@android:color/white" 
         android:textSize="21sp" /> 
       </RelativeLayout> 

       <RelativeLayout 
        android:id="@+id/suggestIndicator" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_gravity="center" 
        android:layout_weight="1" 
        android:background="@color/suggestions_indicator_color" > 

        <TextView 
         android:id="@+id/suggAmount" 
         android:layout_width="60px" 
         android:layout_height="match_parent" 
         android:layout_alignParentLeft="true" 
         android:layout_centerVertical="true" 
         android:layout_marginLeft="30px" 
         android:background="@drawable/circle" 
         android:gravity="center" 
         android:textColor="@color/suggestions_indicator_color" 
         android:textSize="21sp" /> 

        <TextView 
         android:id="@+id/suggText" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignParentTop="true" 
         android:layout_marginLeft="10px" 
         android:layout_marginTop="6px" 
         android:layout_toRightOf="@+id/suggAmount" 
         android:text="@string/sugg" 
         android:textColor="@android:color/white" 
         android:textSize="16sp" 
         android:textStyle="bold" /> 

        <TextView 
         android:id="@+id/suggVisitText" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignBottom="@+id/suggAmount" 
         android:layout_marginLeft="10px" 
         android:layout_toRightOf="@+id/suggAmount" 
         android:textColor="@android:color/white" 
         android:textSize="12sp" /> 

        <ImageButton 
         android:id="@+id/arrowBtn" 
         android:layout_width="30px" 
         android:layout_height="40px" 
         android:layout_alignParentRight="true" 
         android:layout_centerVertical="true" 
         android:layout_marginRight="30px" 
         android:background="@null" 
         android:scaleType="fitXY" 
         android:src="@drawable/arrow" /> 
       </RelativeLayout> 

       <GridLayout 
        android:id="@+id/whereTab" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_weight="5" 
        android:columnCount="2" > 
       </GridLayout> 
      </LinearLayout> 
     </ScrollView> 
    </RelativeLayout> 

    <ImageView 
     android:id="@+id/logoImage" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_gravity="bottom" 
     android:layout_weight="1" 
     android:scaleType="fitXY" 
     android:src="@drawable/logo" 
     tools:ignore="ContentDescription" /> 

</LinearLayout> 

ответ

3

Механизма веса распределяет любые оставшиеся пространства в родительском линейной компоновке после первого прохода макета. В макете wrap_content не осталось свободного места. Для чего это стоит, ScrollView не работает с match_parent высотой.

+0

Есть ли способ сделать это в ScroollView? –

+0

Что делать? Если вам нужна прокрутка, мало что зависит от размера экрана. Просто пусть компоненты занимают любое пространство, в котором они нуждаются, то есть 'wrap_content'. Если вид прокрутки не всегда больше экрана, используйте атрибут 'android: fillViewPort =" true ". – laalto

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