我正在使用Android Studio。我的项目涉及通过BLE接收一些数据,并将其显示在线性布局的屏幕上。
我添加视图的主要活动代码:
dataLayout.addView(view, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
功能定义为:
addView(dataEdit, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));
在我的xml文件中,所需部分如下所示:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1"
android:id="@+id/dataLayout"
android:fillViewport="true">
</LinearLayout>
编辑:
整个xml文件如下所示:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:focusable="true"
android:focusableInTouchMode="true"
android:baselineAligned="true">
<TextView
style="?android:attr/listSeparatorTextViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView2"
android:text="Find Device"
android:layout_marginTop="5dip" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/scanStatus" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Scan"
android:id="@+id/scan"
android:layout_gravity="center_horizontal"
android:enabled="false" />
<TextView
style="?android:attr/listSeparatorTextViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView4"
android:layout_marginTop="5dip" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/deviceInfo" />
<TextView
style="?android:attr/listSeparatorTextViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView3"
android:text="Connect Device"
android:layout_marginTop="5dip" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/connectionStatus" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Connect"
android:id="@+id/connect"
android:layout_gravity="center_horizontal"
android:enabled="false" />
</LinearLayout>
<TextView
style="?android:attr/listSeparatorTextViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView7"
android:text="Receive"
android:textColor="#0B0101"
android:layout_marginTop="5dip" />
<Button
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Clear Data"
android:textColor="#FFFCFC"
android:id="@+id/clearData"
android:layout_gravity="center_horizontal"
android:singleLine="false" />
<TextView
style="?android:attr/listSeparatorTextViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView9"
android:text="Graphs"
android:layout_marginTop="5dip" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Plot"
android:id="@+id/Plot"
android:layout_weight="1"
android:layout_marginTop="2dip"
android:singleLine="false"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Distance:"
android:textColor="#0B0101"
android:id="@+id/textView8" />
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1"
android:id="@+id/dataLayout"
android:fillViewport="true">
</LinearLayout>
</LinearLayout>
</ScrollView>
问题在于屏幕上仅显示接收到的数据的前9个值。之后,即使我向上滚动屏幕,也看不到任何值。我想向上滚动屏幕,查看所有接收到的值。
任何帮助,将不胜感激。
最佳答案
将您的LinearLayout
包装在ScrollView
中应该可以解决。但是,请使用ListView
或RecyclerView
而不是自己添加视图。这些将回收不可见的视图以节省内存。