我刚开始在Android上开发,所以请耐心等待。我有一个活动显示今天的日期的一些天气数据,我想在接下来的7天内在活动底部列出更多天气数据,如下所示:
然而,我对实现这一目标的最佳方法感到困惑。我在考虑使用ListView,但我对如何使用它们感到困惑。根据我的收集,我需要在res/layout
中创建一个ListView布局,然后在我的主活动上使用一个片段,它的布局设置为我刚刚制作的ListView布局。那是对的吗?或者更简单的解决方案是将ListView置于主要活动的底部吗?
或者,我是否使用了完全错误的控件来完成我想做的事情?
答案 0 :(得分:0)
您可以通过以下代码轻松完成此布局:
<Relativelayout...>
<EditText android="@+id/edit1"
android:alignParentTop="true"
... />
<LinearLayout android:id="@+id/YOUR_MIDDLE_DATA"
android:above="@+id/listview1"
android:below="@+id/edit1" ...>
...
...
</Linearlayout>
<Listview android:id="@+id/listview1"
android:above="@+id/txt1"
... />
<Textview android:id="@+id/txt1"
...
android:alignParentBottom="true" />
</RelativeLayout>
您也可以使用重量进行自定义。
希望这会对你有所帮助。
答案 1 :(得分:0)
以下面的XML为例。在这个(来自我的应用程序的实际XML)中,我在EditText
之上有一个较小的ListView
,但您可以将其更改为您需要的其他内容。这实际上说明的是,您可以在顶部或底部有一个ListView
以及其他一些内容。 (我删除了ListView
之后的Admob代码)
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/phone_thing_comment_bg"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingLeft="9dp"
android:paddingRight="9dp"
android:paddingTop="5dp" >
<EditText
android:id="@+id/editFilterList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="@drawable/phone_thing_comment_box"
android:drawableLeft="@drawable/filter_search_icon"
android:drawablePadding="5dp"
android:hint="Type Friends Name"
android:inputType="text"
android:maxLines="1"
android:textColor="#ff333333"
android:textColorHint="#ff78797d"
android:textCursorDrawable="@null" >
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:cacheColorHint="@android:color/transparent"
android:divider="#000000"
android:dividerHeight="0dp"
android:fadingEdge="none"
android:persistentDrawingCache="scrolling"
android:scrollbars="none" >
</ListView>
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:padding="10dp"
android:text="@string/no_friends"
android:textColor="#f1f1f1"
android:textSize="15sp"
android:textStyle="bold"
android:visibility="gone" >
</TextView>
</LinearLayout>
</LinearLayout>
使用此方法的专业人员是ListView
会像它应该滚动一样,但它上面的Widgets
将始终是静止的。使用此方法的缺点是在屏幕较小的设备上,可能没有足够的空间显示ListView
内容,用户可能需要滚动很多。
或者,您可以将Widgets
分隔在ListView
之上,将它们放在不同的XML文件中,并将其作为{{1添加到ListView
(在Java代码中) }}。这使得Header
以上的内容与ListView
内容一起移动。
所以这段代码使用不同的XML,它将作为Java代码中的Header添加:
ListView
优点和缺点与前面的例子完全相反。
无论在 <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/phone_thing_comment_bg"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingLeft="9dp"
android:paddingRight="9dp"
android:paddingTop="5dp" >
<EditText
android:id="@+id/editFilterList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="@drawable/phone_thing_comment_box"
android:drawableLeft="@drawable/filter_search_icon"
android:drawablePadding="5dp"
android:hint="Type Friends Name"
android:inputType="text"
android:maxLines="1"
android:textColor="#ff333333"
android:textColorHint="#ff78797d"
android:textCursorDrawable="@null" >
</EditText>
</LinearLayout>
还是Fragment
中使用哪种方法都可以使用。