如何在小部件中添加垂直滚动条?
Posted
技术标签:
【中文标题】如何在小部件中添加垂直滚动条?【英文标题】:How can ı add vertical scroll bar in widget? 【发布时间】:2020-02-22 13:06:08 【问题描述】:我是 android 的初级开发人员。我创建了小部件。我想在我的小部件中添加垂直滚动条。我该怎么做?谢谢。
我的小部件代码:
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId)
int id = 0;
if (MyNotesWidgetActivity.widgetProcess == "create")
id = CustomAdapter.cid;
else
id = CustomAdapter.uid;
DataSource dataSource = new DataSource(context);
dataSource.open();
String content = dataSource.getNote(id);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_notes_widget);
views.setTextViewText(R.id.appwidget_text, content);
appWidgetManager.updateAppWidget(appWidgetId, views);
xml 文件:
<LinearLayout
android:orientation="vertical"
android:layout_
android:layout_
android:background="@color/colorMyBlue"
android:padding="@dimen/widget_margin"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/appwidget_text"
android:layout_
android:layout_
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_margin="8dp"
android:background="@color/colorMyBlue"
android:contentDescription="@string/appwidget_text"
android:text="@string/add_widget"
android:textColor="#ffffff"
android:textSize="24sp"
android:textStyle="bold|italic" />
</LinearLayout>
【问题讨论】:
那你有什么问题? 我正在从用户添加的笔记中获取小部件内容。太长的内容不适合小部件。并非所有内容都可见。所以我想给小部件添加一个滚动条。 【参考方案1】:Option - 1 : 使用ScrollView
使视图可滚动
<ScrollView android:layout_
android:layout_
android:fillViewport="true"
xmlns:android="http://schemas.android.com/apk/res/android" >
<LinearLayout
android:orientation="vertical"
android:layout_
android:layout_
android:background="@color/colorMyBlue"
android:padding="@dimen/widget_margin">
<TextView
android:id="@+id/appwidget_text"
android:layout_
android:layout_
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_margin="8dp"
android:background="@color/colorMyBlue"
android:contentDescription="@string/appwidget_text"
android:text="@string/add_widget"
android:textColor="#ffffff"
android:textSize="24sp"
android:textStyle="bold|italic" />
</LinearLayout>
</ScrollView>
选项 - 2: 只需在 TextView
中的 layout.xml
中设置 scrollbars
属性即可
android:scrollbars = "vertical"
然后在您的代码中将setMovementMethod
设置为ScrollingMovementMethod
[appwidget_text].setMovementMethod(new ScrollingMovementMethod());
【讨论】:
然后尝试使用选项 2 [appwidget_text].setMovementMethod(new ScrollingMovementMethod());我如何从 RemoteView 对象到达 [appwidget_text](TextView 对象)?或者到达这个对象的方法是什么? 小部件不支持ScrollView,因此第一种解决方案根本不起作用。【参考方案2】:我解决了这个问题 单元素列表视图结构。
希望对您的问题有所帮助。
WidgetScrollBar
【讨论】:
以上是关于如何在小部件中添加垂直滚动条?的主要内容,如果未能解决你的问题,请参考以下文章
如何在小部件扩展中添加超过 5 个小部件? WidgetBundle 的小部件的最大数量不能超过 5