Восстановить позицию в scrollView при выходе из приложения

Интерфейс, диалоги, темы, стили, меню
Ответить
group0403
Сообщения: 5
Зарегистрирован: 29 апр 2016, 08:57

Восстановить позицию в scrollView при выходе из приложения

Сообщение group0403 » 20 фев 2017, 09:58

Здравствуйте. Есть текстовая разметка scrollView, порой бывает, что текст раздела очень длинный, и при выходе из приложения, все обновляется заново до начальной позиции. Как сохранить ту позицию текста, на котором остановились, потом вышли из приложения, далее захотел продолжит чтение, нажал на раздел и продолжил с того места где остановился?
Структура активити

Код: Выделить всё

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#6e513b"
    android:id="@+id/nested">


    <Button
        android:layout_width="70dp"
        android:layout_height="40dp"
        android:id="@+id/button10"
        android:textSize="15sp"
        android:textColor="#000000"
        android:background="@android:drawable/btn_plus"
        android:gravity="center|center_horizontal"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/textView4"
        android:layout_toEndOf="@+id/textView4" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/scrollView4"
        android:layout_below="@+id/button10"
        android:background="#dad0b9"
        android:paddingTop="5dp"
        android:paddingRight="10dp"
        android:paddingLeft="10dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/TextView1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:textColorLink="#c60704"
                android:linksClickable="true"
                android:textSize="18sp"
                android:textIsSelectable="true"
                android:textColor="#000000"
                android:autoLink="all"
                android:gravity="left"
                android:clickable="true" />

        </RelativeLayout>
    </ScrollView>

    <TextView
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="20dp"
        android:id="@+id/textView3"
        android:layout_above="@+id/scrollView4"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:textColor="#ffffff"
        android:textSize="13dp"
        android:layout_alignParentTop="true"
        android:gravity="left|center"
        android:paddingLeft="5dp" />

    <TextView
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="24dp"
        android:id="@+id/textView4"
        android:textColor="#ffffff"
        android:textSize="13dp"
        android:gravity="left|center"
        android:paddingLeft="5dp"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/button9"
        android:layout_toEndOf="@+id/button9"
        android:layout_above="@+id/scrollView4"
        android:layout_marginLeft="-20dp" />

    <Button
        android:layout_width="70dp"
        android:layout_height="40dp"
        android:id="@+id/button11"
        android:textSize="15sp"
        android:textColor="#000000"
        android:background="@android:drawable/btn_plus"
        android:gravity="center|center_horizontal"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/textView5"
        android:layout_toEndOf="@+id/textView5" />

    <Button
        android:layout_width="70dp"
        android:layout_height="40dp"
        android:id="@+id/button9"
        android:textSize="15sp"
        android:textColor="#000000"
        android:background="@android:drawable/btn_plus"
        android:gravity="center|center_horizontal"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/textView3"
        android:layout_toEndOf="@+id/textView3" />

    <TextView
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="29dp"
        android:id="@+id/textView5"
        android:textColor="#ffffff"
        android:textSize="13dp"
        android:gravity="left|center"
        android:paddingLeft="5dp"
        android:layout_toRightOf="@+id/button10"
        android:layout_toEndOf="@+id/button10"
        android:layout_above="@+id/scrollView4"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="-20dp" />

</RelativeLayout>
Класс активити

Код: Выделить всё

public class chap1 extends AppCompatActivity {
    TextView Text;
    StringBuilder sb;
    InputStream is;
    BufferedReader reader;
    String result;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chap1);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
        Typeface font = Typeface.createFromAsset(getAssets(), "font/aa.ttf");

        try {
            result = "";
            sb = new StringBuilder();
            is = this.getAssets().open("text1/text1.txt");
            reader = new BufferedReader(new InputStreamReader(is, "UTF8"));
            if (is != null) {
                while ((result = reader.readLine()) != null) {
                    sb.append(result + "\n");
                }
            }
            Text = (TextView) findViewById(R.id.TextView1);
            Text.setText(sb);
            Text.setTypeface(font);
            is.close();

        } catch (IOException e) {
        }

        Button smallSize =(Button) findViewById(R.id.button9);
        Button mediumSize = (Button) findViewById(R.id.button10);
        Button largeSize = (Button) findViewById(R.id.button11);
        smallSize.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Text = (TextView) findViewById(R.id.TextView1);
                Text.setText(sb);
                Text.setTextSize(20);

            }

    });
        mediumSize.setOnClickListener(new View.OnClickListener() {
                                          public void onClick(View view) {
                                              Text = (TextView) findViewById(R.id.TextView1);
                                              Text.setText(sb);
                                              Text.setTextSize(24);
                                          }
                                      }
        );

        largeSize.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Text = (TextView) findViewById(R.id.TextView1);
                Text.setText(sb);
                Text.setTextSize(29);

            }
        });
}
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            finish();
        }
        return super.onOptionsItemSelected(item);
    }

Ответить