当活动的配置发生变化时,我应用此代码 -
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
gridView.setNumColumns(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE ? 3:2);
gridView.computeScroll();
}
我希望如果GridView
处于中途,它将仅从那里开始,但随着配置的改变,它将从顶部重新开始。
答案 0 :(得分:0)
在清单文件中添加一行
无需覆盖onConfigChanges()方法
<activity
android:name="yourActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
/>
答案 1 :(得分:0)
取一个标志并将其设置为false覆盖方法名称onConfigurationChanged并在此方法中设置标志为true并检查flag是否为true然后禁用滚动然后再次将其伪造 你也需要在menifest中设置它 代码snipet正在关注
private boolean flag=false;
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
Log.d("ONCONFIGCHANGE", "CALLED" );
flag = true;
disableScroll();
super.onConfigurationChanged(newConfig);
}
for menifest执行以下操作
android:configChanges="orientation"
并在onconfigchange中使用以下方法
private void disableScroll()
{
gridview.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_MOVE){
return true;
}
return false;
}
});
}