如何在同一活动中的另一个视图的顶部显示视图

时间:2016-06-02 09:38:46

标签: android android-layout

我在Android应用程序中有一个活动。它会在屏幕中央显示一个视图(例如 CurrentView )。我使用以下方法设置活动的内容: 的setContentView(R.layout.layout_xml_file); 布局xml文件定义了按钮。

我的要求是,当用户点击按钮时,我需要在当前视图中显示包含listView的另一个视图(比如说 NewView )。 NewView 转换应该是这样的: 它应该从屏幕的底部开始,并应占用屏幕的一些比例,比如3/4或1/2。我的意思是视图的高度应该是可配置的。 此 NewView 应该在同一个活动中。我不想创建另一个活动来显示它。 我不明白应该使用哪个Android小部件来保存 NewView

感谢。感谢您的帮助......

4 个答案:

答案 0 :(得分:2)

将相对布局对齐到底部并将其高度设置为您想要的内容,并在setVisibility消失之后在Relative Layout Take Listview中。并且当活动setVisibility中的单击按钮可见时。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <Button
        android:text="Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="128dp"
        android:id="@+id/button" />

    <RelativeLayout
        android:id="@+id/rel"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:background="#f0f0f0"
        android:layout_below="@+id/button"
        android:visibility="gone">

        <ListView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:divider="#000"
            android:dividerHeight="1dp"/>
    </RelativeLayout>
</RelativeLayout>

答案 1 :(得分:2)

  1. 在layout.xml中使用LinearLayout - layout_weight属性
  2. View.setVisibility(View.VISIBLE或View.GONE)

答案 2 :(得分:0)

或许使用FrameLayout作为两个视图的父布局。最初列表应该是不可见的并且按钮可见。

答案 3 :(得分:0)

我认为你看起来像这个库 - &gt; https://github.com/umano/AndroidSlidingUpPanel