作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当屏幕方向改变时,我根据方向将列数设置为 1 或 2,但是这样做会将滚动位置重置为顶部。我希望它保持原位(maurycyw 的 StaggeredGridView 按预期工作。)
最佳答案
实际上这是一个特定于库的问题。如果有人仍在使用该库(来自 https://github.com/maurycyw/StaggeredGridView 的 maurycyw 的 StaggeredGridView)并且在方向更改和同时设置列数时无法控制位置,这里有一个使用加速度计的解决方案。但请记住,并非所有设备都支持加速度计。
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private static final String urls[] = {
"http://farm7.staticflickr.com/6101/6853156632_6374976d38_c.jpg",
"http://farm8.staticflickr.com/7232/6913504132_a0fce67a0e_c.jpg",
"http://farm5.staticflickr.com/4133/5096108108_df62764fcc_b.jpg",
"http://farm5.staticflickr.com/4074/4789681330_2e30dfcacb_b.jpg",
"http://farm9.staticflickr.com/8208/8219397252_a04e2184b2.jpg",
"http://farm9.staticflickr.com/8483/8218023445_02037c8fda.jpg",
"http://farm9.staticflickr.com/8335/8144074340_38a4c622ab.jpg",
"http://farm9.staticflickr.com/8060/8173387478_a117990661.jpg",
"http://farm9.staticflickr.com/8056/8144042175_28c3564cd3.jpg",
"http://farm9.staticflickr.com/8183/8088373701_c9281fc202.jpg",
"http://farm9.staticflickr.com/8185/8081514424_270630b7a5.jpg",
"http://farm9.staticflickr.com/8462/8005636463_0cb4ea6be2.jpg",
"http://farm9.staticflickr.com/8306/7987149886_6535bf7055.jpg",
"http://farm9.staticflickr.com/8444/7947923460_18ffdce3a5.jpg",
"http://farm9.staticflickr.com/8182/7941954368_3c88ba4a28.jpg",
"http://farm9.staticflickr.com/8304/7832284992_244762c43d.jpg",
"http://farm9.staticflickr.com/8163/7709112696_3c7149a90a.jpg",
"http://farm8.staticflickr.com/7127/7675112872_e92b1dbe35.jpg",
"http://farm8.staticflickr.com/7111/7429651528_a23ebb0b8c.jpg",
"http://farm9.staticflickr.com/8288/7525381378_aa2917fa0e.jpg",
"http://farm6.staticflickr.com/5336/7384863678_5ef87814fe.jpg",
"http://farm8.staticflickr.com/7102/7179457127_36e1cbaab7.jpg",
"http://farm8.staticflickr.com/7086/7238812536_1334d78c05.jpg",
"http://farm8.staticflickr.com/7243/7193236466_33a37765a4.jpg",
"http://farm8.staticflickr.com/7251/7059629417_e0e96a4c46.jpg",
"http://farm8.staticflickr.com/7084/6885444694_6272874cfc.jpg"
};
private StaggeredGridView mGridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGridView = (StaggeredGridView) this.findViewById(R.id.sgv);
int margin = getResources().getDimensionPixelSize(R.dimen.margin);
mGridView.setItemMargin(margin); // set the GridView margin
mGridView.setPadding(margin, 0, margin, 0); // have the margin on the sides as well
StaggeredAdapter adapter = new StaggeredAdapter(MainActivity.this, R.id.imageView1, urls);
mGridView.setAdapter(adapter);
adapter.notifyDataSetChanged();
initAccelerometer();
}
private void initAccelerometer() {
SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor accelerometer = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);
sensorManager.registerListener(this, accelerometer,SensorManager.SENSOR_DELAY_GAME);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
int currentOrientation = getResources().getConfiguration().orientation;
if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE){
mGridView.setColumnCount(2);
mGridView.invalidate();
}else{
mGridView.setColumnCount(1);
mGridView.invalidate();
}
}
}
从https://github.com/maurycyw/StaggeredGridViewDemo编辑MainActivity
然后在 Android Manifest 的 Activity 中添加:android:configChanges="orientation|screenSize"
关于java - 如何在方向改变时保持 Maurycyw 的 StaggeredGridView 在 setColumnCount 上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20431530/
当屏幕方向改变时,我根据方向将列数设置为 1 或 2,但是这样做会将滚动位置重置为顶部。我希望它保持原位(maurycyw 的 StaggeredGridView 按预期工作。) 最佳答案 实际上这是
我是一名优秀的程序员,十分优秀!