Android小部件不同的肖像和景观取向
-
02-10-2019 - |
题
我有一个相对简单的问题。我该如何告诉Android用于肖像的哪种布局以及我的AppWidget上用于景观方向的布局?
提前致谢!
解决方案
首先,请记住,某些家庭屏幕(例如,Nexus One)不会改变方向。
每个方向具有不同布局的标准方法是将肖像版本放入 res/layout/
, ,以及景观版本 res/layout-land/
, ,都以相同的名字(例如, appwidget.xml
)。然后,只需用名称参考它(例如, R.layout.appwidget
),Android将根据方向选择文件。这肯定适用于活动,因此我认为它适用于应用程序小部件,但我认为我实际上并没有尝试过。
其他提示
要更改应用程序小部件的宽度和高度,请定义两个不同的 android:layout_height
和 android:layout_width
布局的尺寸(在 res/layout-port
和 res/layout-land
)。然后定义 更大 宽度和高度 appwidgetinfo.xml
. 。这样,当更改方向时,应用程序小部件会更改大小,而不仅仅是将小部件添加到房屋屏幕中时。
如果您使用远程视图来动态更新小部件,则可以向UpdateAppwidget函数调用提供两个单独的远程视图。例如:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
RemoteViews rvLandscape=new Remoteviews(context,R.layout.widget_landscape);
rvLandscape.addView(...
:
RemoteViews rvPortrait =new Remoteviews(context, R.layout.widget_portrait);
rvPortrait.addView(...
:
appWidgetManager.updateAppWidget(widgetId, new RemoteViews(rvLandscape, rvPortrait));
}
不隶属于 StackOverflow