当前位置: 首页 > 知识库问答 >
问题:

在LinearLayout和其他几个视图[重复]

江飞章
2023-03-14

我的线性布局中有一个回收视图。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/book_detail_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.BookDetailActivity">
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:orientation="vertical">

        <ImageView
            android:layout_width="250dp"
            android:layout_height="270dp"
            android:id="@+id/book_image"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:layout_gravity="center"
            android:src="@drawable/book_default"/>

        <View
            android:layout_width="match_parent"
            android:layout_height="1dip"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:background="#EEEEEE"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:id="@+id/book_authors"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:fontFamily="sans-serif-condensed" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
            <RatingBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                style="?android:attr/ratingBarStyleSmall"
                android:max="5"
                android:id="@+id/book_rating"
                android:stepSize="0.5"
                android:paddingTop="10dp"
                android:isIndicator="true"
                android:progressTint="#FFA500"
                android:secondaryProgressTint="#D1D6D8"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="10dp"
                android:paddingLeft="5dp"
                android:id="@+id/book_rating_text"
                android:fontFamily="sans-serif-condensed" />
        </LinearLayout>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:id="@+id/book_reviews_text"
            android:textColor="@color/redColor"
            android:fontFamily="sans-serif-condensed" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1dip"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:background="#EEEEEE"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:fadingEdge="vertical"
            android:fadingEdgeLength="20dp"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:id="@+id/book_description"
            android:onClick="toggleText"
            android:ellipsize="end"
            android:maxLines="3" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1dip"
            android:id="@+id/book_description_below_line"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:background="#EEEEEE"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/dark_translucent_black"
            android:textAlignment="center"
            android:textSize="15dp"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:text="People near you who are willing to lend this book"/>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/lender_recycler_view"
            android:layout_width="match_parent"
            android:layout_height="400dp"
            android:scrollbars="vertical" />
    </LinearLayout>
</ScrollView>

问题是,当我膨胀这个回收者视图时,完整的活动没有滚动(只有回收者视图的一部分滚动)。此外,我有指定高度的回收视图,否则我无法看到它。

所以我的两个问题是:

  1. 如何动态地给这个回收站视图高度(layout_height:wrap_content不工作)
  2. 当内容更多时,如何滚动整个活动(而不仅仅是回收站视图部分)。

另外,我是Android新手,虽然我之前已经实现了recyclerView,但在这些情况下只有一个元素(父LinearLayout中有一个recyclerView)

共有1个答案

端木望
2023-03-14

可扩展高度列表视图。JAVA

import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.ListView;
import android.content.Context;

public class ExpandableHeightListView extends ListView
{

    boolean expanded = false;

    public ExpandableHeightListView(Context context)
    {
        super(context);
    }

    public ExpandableHeightListView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
    }

    public ExpandableHeightListView(Context context, AttributeSet attrs,
            int defStyle)
    {
        super(context, attrs, defStyle);
    }

    public boolean isExpanded()
    {
        return expanded;
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
    {

        if (isExpanded())
        {
            // Calculate entire height by providing a very large height hint.
            // But do not use the highest 2 bits of this integer; those are
            // reserved for the MeasureSpec mode.
            int expandSpec = MeasureSpec.makeMeasureSpec(
                    Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
            super.onMeasure(widthMeasureSpec, expandSpec);

            ViewGroup.LayoutParams params = getLayoutParams();
            params.height = getMeasuredHeight();
        }
        else
        {
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        }
    }

    public void setExpanded(boolean expanded)
    {
        this.expanded = expanded;
    }
}

添加这个定制的java文件并在xml中使用它。在您的主要活动中,请执行以下操作:

   ExpandableHeightListView  listview= (ExpandableHeightListView) findViewById(R.id.comment_listview);

并设置适配器和设置一个属性

listview.setAdapter("Your Adapter");
listview.setExpanded(true);
 类似资料:
  • 我正在我的应用程序中使用ViewPager进行滑动效果。 我使用pager.setPageMargin()使下一个视图和上一个视图可见,不幸的是我的下一个视图与当前视图重叠。 下面是我的代码 我在用寻呼机里的片段。我得到的输出与这个线程的附加,但需要视图被适当地放置与out over lapping 上图所标部分应在中心卡后面。

  • 对不起,我的英语…我会试着解释我想做什么。我有一个项目。它可以在链接上下载: < Li > https://drive . Google . com/file/d/0 bxhio ufkk 3 upcxjngtmvkg 4 tdq/view?usp =共享 正如你看到的截图: http://pixs.ru/showimage/Screenshot_9509352_15647059.png “隐藏/

  • activity\u checklist\u详细信息。xml 以下是ChecklistDetail活动 但对我来说什么都不管用。如果我将activity\u checklist\u detail中的布局更改为水平或垂直,我将得到下图。 注意:我知道使用RecyclerView是最好的选择,但这里我没有很多项目。提前谢谢。

  • 问题内容: 我正在开发一个android应用程序,并且有一个按钮可以启动/暂停某些模拟过程。在此过程运行时,我需要实时输出一些数据。但是,当我为仿真创建新线程时,无法从该线程访问视图(将其命名为TextView),因为只能从创建它们的线程访问它们。另一方面,新线程是必需的,因为否则在仿真运行时,用户将无法执行任何操作(例如,按下其他一些按钮)。在这种情况下,创建新服务还需要创建一个新线程。我应该如

  • 我想在其中一个视图隐藏时制作可调整大小的视图。下面的链接已经针对iOS提出了这个问题。我想为Android制作。感谢任何帮助。我想在将可见性设置为隐藏计数和折扣后,为三个TextViev:position、stat_name、price添加空闲空间 我在这里的风格是:

  • 我有以下名为“生产”的熊猫数据框架,并希望根据其种类、温室和年/月获得每种植物生产的重量 例如,对于“2020-05”,我们有GH1和GH2。在GH1中,S1(工厂0001和0002)的总产量为400(200),因此工厂0001的重量为0.50,工厂0002的重量为0.50。S2的总产量为150(100 50);因此,我们将植物0003的重量定为0.66(100/150),将植物0004的重量定为