ScrollView застрял до вызова onConfigurationChaged () - PullRequest
0 голосов
/ 03 февраля 2012

Как видно из названия, у меня есть ScrollView, который не прокручивается до тех пор, пока я не переключу устройство с портретного на альбомное или альбомное на портретное, чтобы вызвать событие onConfigurationChanged() моей Активности.

Я попробовал Activity на моем Nexus S (2.3.3) и на эмуляторе (4.0.3), и он показывает то же странное поведение.

Я также пытался поиграться, когда макет применяется к Деятельности, но все же не повезло.

Мой XML-макет для действия можно найти здесь (Это немного длинно, и я не хотел загромождать мой вопрос XML).

Вот некоторый код, который может быть полезен вам, ребята, чтобы выручить меня:

/** {@inheritDoc} */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.terms_and_agreements);

    //fire up the AsyncTask to get data
    showLoadingProgress();
    mBookingInfoTask = new BookingInfoTask();
    mBookingInfoTask.execute();
}

/** {@inheritDoc} */
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

/** This methode is called when the BookingInfoTask has finished collecting date from the server */
public void onBookingInfoResult(String clubTerms, String portalTerms) {
    final String fClubTerms = clubTerms;
    final String fPortalTerms = portalTerms;
    runOnUiThread(new Runnable() {
        public void run() {
            TextView tvTerms = (TextView) findViewById(R.id.tvTerms);
            tvTerms.setText(fClubTerms + "\n\n" + fPortalTerms);
        }
    });

    hideProgress(); //Hides progress bar
}

И, наконец, вот декларация Манифеста моей Деятельности:

    <activity
        android:name=".ConfirmationActivity"
        android:configChanges="keyboardHidden|orientation"
        android:theme="@android:style/Theme.NoTitleBar" />

1 Ответ

1 голос
/ 03 февраля 2012

Я заставил его работать, обернув мой TextView (который должен был заполнить родительский элемент) в линейный макет примерно так:

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/tvTerms"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.0"
            android:paddingBottom="6dip"
            android:paddingLeft="6dip"
            android:paddingRight="6dip"
            android:textColor="#000000" />
    </LinearLayout>

Вот как это было, когда я не мог заставить его прокручивать:

<TextView
    android:id="@+id/tvTerms"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1.0"
    android:paddingBottom="6dip"
    android:paddingLeft="6dip"
    android:paddingRight="6dip"
    android:textColor="#000000" />

А теперь он прокручивается, как и должно!

...