滚动视图中的权重

时间:2016-04-11 13:30:27

标签: java android android-layout

我有一个任务 - 制作这样的活动task这里的照片需要一半的屏幕而文字需要另一半。一切都可以正常使用权重,但有时文本会占用大量空间而不适合屏幕,所以我用ScrollView覆盖了所有布局,但问题就出现了。如果一切都不适合一个屏幕,一切都应该是这样的 - 照片将占据可见屏幕的一半,而后半部分将包含可以适合那里的文本的一部分,当我滚动时,一切都应该滚动,新文本将出现在底部。但我不明白如何实现这一点,权重在这里以某种奇怪的方式工作,正如我所理解的那样,标签fillViewPort="true"只有在没有任何东西可以滚动的情况下才会产生某些东西,并且当有东西时,这个标记什么都不做。那么我怎样才能以正确的方式看待我的观点呢?

这是我的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 个答案:

答案 0 :(得分:1)

我实现了我的目标,使其成为程序化的。在活动中,我可以访问ImageView并设置它的高度=可见屏幕的一半。

find(sub {
    return unless -f;
    print $File::Find::name, "\n";
}, '.');

但我仍然不知道如何使用XML