Horizo​​ntalScrollView在下一个活动中保持位置

时间:2016-03-13 06:50:33

标签: android

我正在尝试使用多个ImageButtons实现Horizo​​ntalScrollView,到目前为止这看起来很棒,因为我可以滚动我的按钮但是我想点击一个按钮(例如:ImageButton 7),它将我带到Activity 7我想要的地方Horizo​​ntalScrollView保持在从先前活动滚动的相同位置,并且在更改活动后不会重置为原始位置。

因此,在简单的术语中,我想获得Horizo​​ntalScrollView的位置,并且可能使用intent将值传递给下一个活动,然后在下一个活动中设置这些位置。希望我有意义。

@Override
protected void onCreate(Bundle savedInstanceState) {
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final HorizontalScrollView hsv = (HorizontalScrollView) findViewById(R.id.hsv);


    // btnFeatured
    hsv.post(new Runnable() {
        @Override
        public void run() {
            // Get the button.
            ibSeven = (ImageButton) findViewById(R.id.ibSeven);
            ibSeven.setImageResource(R.drawable.ib_seven_h);
            ibSeven.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    startActivity(new Intent(MainActivity.this, ActivitySeven.class));


                }

            });

2 个答案:

答案 0 :(得分:1)

制作两个变量以保存scrollView的deleted = original.filter( function( el ) { return edited.indexOf( el ) < 0; }); //returns [10,100] added = edited.filter( function(el) { return original.indexOf(el) < 0; }); //returns[120,140,70] X位置

Y

覆盖public static int scrollX = 0; public static int scrollY = -1; 并保存此处的位置

onPause

然后在@Override protected void onPause() { super.onPause(); scrollX = hsv.getScrollX(); scrollY = hsv.getScrollY(); } 内将滚动点移动到保存状态

onResume

答案 1 :(得分:0)

活动1:

scrollX = hsv.getScrollX();
scrollY = hsv.getScrollY();

Intent intent = new Intent(MainActivity.this, ActivitySeven.class);
intent.putExtra("value_scrollX", scrollX);
intent.putExtra("value_scrollY", scrollY);
startActivity(intent);

活动2:

Intent intent = getIntent();
final int scrollX = intent.getIntExtra("value_scrollX", 0);
final int scrollY = intent.getIntExtra("value_scrollY", 0);

hsv.post(new Runnable() {

        @Override
        public void run() {


            hsv.scrollTo(scrollX, scrollY);
        }

 });