我遇到了我的问题.Thing是一个自定义的Tab Widget.In,它有多个
标签Home
- News
- Abc
- PQR
。
活动应该是both orientation like portrait and landscape
。因此,每个标签都有two xml
用于存储在layout-port/file.xml
的纵向和用于存储在layout-land/file.xml
的景观
为了管理定位纵向到横向,我在每个活动中添加了android:configChanges="orientation|keyboardHidden"
规则标记。
TAB_SAMPLE.java
标签文件。 TAB_GROUP_ACTIVITY
每个标签组活动文件file.java
任务文件完成所有这些后,我在这里遇到问题:
如果我add
android:configChanges =“orientation | keyboardHidden”rule tag in tab_sample
活动,那么它的工作完美。喜欢管理不同的观点。港口陆地和陆地到港口,但它不在Home.java。
现在,如果我remove android:configChanges="orientation|keyboardHidden" rule tag in tab_sample
活动,那么它的Home活动不适用于News.java
意思是当我改变方向时,保持相同的xml表单端口不使用layout-land.in它再次调用OnCreate()。
所以我发现may be issue is in Tab Widget.
更新
现在跟踪我的代码后,我得到的主要问题是网格视图活动,因为它唯一的活动无效。
Issue is between Tab host v/s Grid View
。我不知道为什么它没有采用layout-land xml文件。我发现this是同一个问题但在该问题上没有重播
详见manifestfile.xml 我想在所有活动中保持肖像和风景。
请帮我解决这个问题。
答案 0 :(得分:3)
Oooohhh最后我得到了上述问题的解决方案。这很困难。
为了保持方向状态横向为纵向,反之亦然,我们通常会在活动下添加android:configChanges="keyboardHidden|orientation"
属性标记。
但是may be issue is Tab_Group_ Activity
因为我无法在GridView中维护状态。 Grid_File.java
只有一个java文件,它没有处理所有其他工作方向的完美工作。
现在,如果remove android:configChanges="keyboardHidden|orientation"
来自TAB_SAMPLE.java
,那么仅处理Grid_File.java
而不是其他人。
mean that was keeping same Layout XML in landscape also where i have two separate XML File.
以下是我的解决方案:
我在add android:configChanges="keyboardHidden|orientation"
以及中有TAB_SAMPLE.java
implement onConfigurationChanged(Configuration newConfig)
并设置网格列数。比如gridView.setNumColumns(6);
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
// gridView.setSelection(index);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
// Log.e("On Config Change", "LANDSCAPE");
gridView.setNumColumns(6);
} else
{
// Log.e("On Config Change", "PORTRAIT");
gridView.setNumColumns(4);
}
}
通常我们会在活动或android:configChanges="keyboardHidden|orientation"
下添加implementing onConfigurationChanged(Configuration newConfig)
标记,但这里我写了两个。