繁体   English   中英

Android小部件不同的纵向和横向方向

[英]Android widget different portrait and landscape orientation

我有一个(希望)一个相对简单的问题。 如何告诉Android哪个布局用于纵向以及哪个布局用于我的AppWidget上的横向?

提前致谢!

首先,请记住一些主屏幕(例如,Nexus One)不会改变方向。

每个方向具有不同布局的标准方法是将纵向版本放在res/layout/ ,并将横向版本放在res/layout-land/ ,两者都使用相同的名称(例如, appwidget.xml )。 然后,只需按名称引用它(例如, R.layout.appwidget ),Android将根据方向选择文件。 这肯定适用于活动,所以我认为它适用于app小部件,但我认为我没有尝试过它。

要更改app小部件的宽度和高度,请为布局定义两个不同的android:layout_heightandroid:layout_width大小(在res/layout-portres/layout-land )。 然后在appwidgetinfo.xml定义更大的宽度和高度。 这样,app小部件会在方向更改时更改大小,而不仅仅是在将小部件添加到主屏幕时。

如果您使用RemoteViews动态更新窗口小部件,则可以为updateAppWidget函数调用提供两个单独的RemoteView。 例如:

@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));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM