1

私は自分のxmlにスクロールビューを持っていましたが、スクロールビューは電話の横向きモードでのみ機能し、電話の縦向きモードでは機能しないはずです。これは可能であり、可能であれば、xmlファイルを使用するか、プログラムで実行する必要があります。コードが必要な場合私に聞いてください。ありがとう

これがxmlファイル(ポートレートモード)です:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/scrollview1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#1e90ff"
    tools:context=".HomeActivity"
    android:scrollbars="none"
    >

<LinearLayout
    android:id="@+id/layout01"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#a9a9a9"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="1dp"
        android:background="@drawable/my_tauky_button_img" />

    <Button
        android:id="@+id/button2"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="1dp"
        android:background="@drawable/explore_button_img"
        android:text="" />

    <Button
        android:id="@+id/button3"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="1dp"
        android:background="@drawable/create_tauky_button_img" />

    <Button
        android:id="@+id/button4"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="1dp"
        android:background="@drawable/my_blauky_button_img" />

    <Button
        android:id="@+id/button5"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:background="@drawable/profile_button_img" />
</LinearLayout>

</ScrollView>
4

4 に答える 4

1

最も簡単な解決策は、次を確認することです。

getResources().getConfiguration().orientation;

で、向きがonCreate()の場合は無効にします。ここで参照を参照してください: http://developer.android.com/reference/android/content/res/Configuration.html#orientationScrollViewportrait

デフォルトActivitiesでは、構成の変更 (方向の変更を含む) で再起動されるため、このイベントをリッスンする必要はありません。

を変更するだけonCreate()です:

@Override
protected void onCreate(Bundle savedState) {
    super.onCreate(savedState);
    setContentView(R.layout.activity_layout);

    // disable ScrollView in portrait mode
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
        ScrollView scrollView = (ScrollView)findViewById(R.id.scrollview1);
        scrollView.setEnabled(false);
    }
}

activity_layout、レイアウト ファイル名 (.xml拡張子なし) です。それでおしまい!

于 2013-02-06T07:48:27.137 に答える
0

2 つの異なる xml レイアウトを作成します。1 つはポートレート モード用 (デフォルトの "layout" フォルダーに入れます)、もう 1 つはランドスケープ用 ("layout-land" フォルダーを作成してそこに置きます) で、もう 1 つはスクロール ビューのみを追加します。 .

于 2013-02-06T07:48:41.740 に答える
0

これを試して、

  scrollView.setVerticalScrollBarEnabled(false);
于 2013-02-06T07:49:11.310 に答える
0

このコードを試してください:)

switch (getResources().getConfiguration().orientation) {
        case Configuration.ORIENTATION_PORTRAIT:
            ScrollView scrollView = (ScrollView)findViewById(R.id.scrollview1);
            scrollView.setEnabled(false);
            break;

}
于 2013-02-06T07:50:04.787 に答える