我不确定如何说出我的问题,但标题有点解释。我首先要说的是我对Android应用程序编程很陌生。
我的MainActivity包含一个包含EditText和Button的RelativeLayout,以及一个带有一堆TextView和一些ImageView的ListView。现在我已经设法将我的搜索栏和按钮放在我的ListView上方,但是我希望搜索栏不会一直放在顶部。我喜欢这样,当我滚动我的ListView(显示一堆帖子,如Twitter提要)。有谁知道这是否有可能实现,如果是这样 - 如何?
我将粘贴我的activity_main.xml,我的ListView的xml文件非常长,实际上只是一堆TextViews等。 (可以根据要求发帖)
activity_main.xml中
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<RelativeLayout
android:id="@+id/main_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:padding="3dp"
android:background="#cecece" >
<EditText
android:id="@+id/search_field"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:hint="@string/search_field" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignRight="@id/search_field"
android:layout_centerVertical="true"
android:height="10dp"
android:textSize="15dp"
android:background="#bcbaba"
android:text="@string/search_button"
android:onClick="searchQuery" />
</RelativeLayout>
<ListView
android:id="@+id/dataListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/main_header"
android:paddingTop="30dp" />
</RelativeLayout>
先谢谢,克里斯蒂娜:)
答案 0 :(得分:0)
我不知道RelativeLayout
本身会实现此功能的任何功能,但您可以尝试以编程方式将EditText
上的可见性设置为:
.setVisibility(View.GONE)
将完全“删除”它,这意味着它所占用的空间将是免费的,或者只是setVisibility(View.INVISIBLE)
这将使其无形但将保留其空间。要知道何时在EditText
上拨打此电话,您可以为onScroll
使用ListView
听众。
@Override
public void onScroll(AbsListView absListView, int firstVisible, int visibleCount, int totalCount) {
//firstvisible is your first visible item in the list
}
要确定您的ListView
是否位于顶部,您可以使用上方的firstVisible
或
getFirstVisiblePosition()
并决定让您EditText
可见。
希望这有助于让您走上正确的轨道,但我还没有真正测试过它。