我有这个代码xml布局,我试图在圆形安卓手表中实现。我希望TextView
上方的ExpandableListView
滚动它而不是停留在顶部并占用空间。
我尝试使用ScrollView
而不是RelativeLayout
(ScrollView
RelativeLayout
,反之亦然),但这样做的是LinearLayout
要求ExpandableListView
的设置高度显示列表,这是列表动态更改时不可能的(因此它可以有一个随机数的组成员),如果我使用“wrap_content
”它只显示一次一组。每个小组也有4名儿童成员。
有人可以告诉我如何使这个布局适合我,以便TextView
和ExpandableListAdapter
滚动在一起而不会有ExpandableListAdapter
的设定高度吗?
round_activity_card_view_layout.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"
tools:context="com.jawad.wifihotspotfinder.CardViewLayout"
tools:deviceIds="wear_round"
android:background="#FF3C00"
android:smoothScrollbar="true">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="20dp"
android:paddingLeft="15dp"
android:paddingRight="10dp"
android:paddingBottom="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cardViewHeader"
android:textSize="17sp"
android:textColor="@color/white"
android:fontFamily="sans-serif"
android:paddingLeft="20dp"
android:paddingRight="5dp"/>
<ExpandableListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/round_expandableListView"
android:background="#FF3C00"
android:choiceMode="multipleChoice"
android:groupIndicator="@null"
android:longClickable="true"/>
</LinearLayout>
</ScrollView>
答案 0 :(得分:2)
查看addHeaderView(View v)。以编程方式创建TextView
或从XML扩充,然后使用该方法将其添加到ExpandableListView
。
然后TextView
应该使用ExpandableListView
滚动。
答案 1 :(得分:2)
感谢您告诉我该怎么做,Alex。我不得不想出一些方法来做那些花了很长时间,但最终做对了。感谢您的指示,这对我帮助很大!使用的代码如下:
LinearLayout mLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.expandable_header, expListView, false);
mLayout.setLayoutParams(new AbsListView.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
expListView.addHeaderView(mLayout);
还有更改的xml文件:
expandable_header.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#FF3C00">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/expCardViewHeader"
android:textSize="17sp"
android:textColor="@color/white"
android:fontFamily="sans-serif"
android:paddingLeft="20dp"
android:paddingRight="5dp"
android:paddingBottom="2dp"
android:background="#FF3C00"
android:text="@string/no_results"/>
</LinearLayout>
round_activity_card_view_layout.xml
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.jawad.wifihotspotfinder.CardViewLayout"
tools:deviceIds="wear_round"
android:background="#FF3C00"
android:smoothScrollbar="true">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#FF3C00"
android:paddingTop="20dp"
android:paddingLeft="15dp"
android:paddingRight="10dp"
android:paddingBottom="10dp">
<ExpandableListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/round_expandableListView"
android:background="#FF3C00"
android:choiceMode="multipleChoice"
android:groupIndicator="@null"
android:longClickable="true"
android:smoothScrollbar="true" />
</LinearLayout>
</RelativeLayout>