我正在从纵向到风景以及从风景到肖像进行方向转换。我的代码如下
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
//Set titlebar as "my@heaven"
getSherlockActivity().getSupportActionBar()
.setBackgroundDrawable(getResources().getDrawable(R.drawable.myheaven));
view = inflater.inflate(R.layout.memorial_listing, container, false);
setUpView(savedInstanceState);
return view;
}
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
}
}
我也将此添加到清单
android:configChanges="orientation|keyboardHidden|screenSize"
和相同的布局我把纵向和布局的布局文件夹放在横向,但是当我尝试旋转屏幕时,如果从纵向开始,那么仍然保持从布局文件夹中获取布局。屏幕旋转但没有右侧文件夹显示布局。请帮忙
答案 0 :(得分:3)
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Get a layout inflater (inflater from getActivity() or getSupportActivity() works as well)
LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(// new orientation is potrait){
// load potrait layout
}else{
// load landscape layout
}
}
此方法在方向更改时接收回调。因此在接收回调时会扩大布局。
P.S:布局应该有不同的名称。不要将横向布局放在layout-land文件夹中。当我遇到这个问题时,我不得不从layout-land中拉出我的布局,然后把它放在布局文件夹中。虽然这不是一个好习惯,但在我的情况下它只是这样工作。
答案 1 :(得分:0)
以下为我工作,
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
Log.e("On Config Change","LANDSCAPE Mode");
}else{
Log.e("On Config Change","PORTRAIT Mode");
}
请你查一下。