我有两个版本的活动布局,一个用于横向和一个默认(肖像)版本。在下面的代码中,在setContent之后,我想根据加载的布局来做一些条件代码。最终它可能不仅仅是看方向那么简单,可能有更多的布局依赖于屏幕尺寸等。只是试图找出它加载的布局版本而不试图自己编写相同的条件逻辑。 / p>
library(tidyverse)
result <- df2 %>%
left_join(df1, by=c("AB" = "Name")) %>% select(XY, ZW, AB=Vote) %>%
left_join(df1, by=c("XY" = "Name")) %>% select(AB, XY=Vote, ZW) %>%
left_join(df1, by=c("ZW" = "Name")) %>% select(AB, XY, ZW=Vote)
result
答案 0 :(得分:2)
如果你想做这样的条件事件,你可以使用一个布尔值资源(如果你有两个以上的配置,则使用整数值),在你正在测试的每个配置中放一个。
/res/values/foo.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="is_landscape">false</bool>
</resources>
/res/values-land/foo.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="is_landscape">true</bool>
</resources>
您可以通过解析值来检查:
if (resources.getBoolean(R.bool.is_landscape)) {
// do something
}
答案 1 :(得分:1)
您可以在布局的根视图中添加字符串标记。 E.g。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="landscape">
...
然后,您可以在视图夸大后检查标记,并知道它来自哪种资源类型。
when(rootView.tag) {
"landscape" -> ...
"portrait" -> ...
}