ScrollView не прокручивается в Android

#android #android-activity #imageview #android-relativelayout #android-scrollview

#Android #android-активность #просмотр изображений #android-relativelayout #android-scrollview

Вопрос:

я пытаюсь добавить изображения в свой относительный макет с помощью цикла for, но это не работает. Я попытался удалить цикл for и сделать одно изображение длиннее, и вид прокрутки, кажется, работает, но когда я пытаюсь добавить более одного изображения в относительный макет, он добавляет его, но я не могу прокручивать их. Это означает, что я вижу, что есть 5 изображений, но я вижу только верхнюю половину и не могу прокрутить, чтобы увидеть нижнюю половину.

Вот мой XML-файл, который я использую для этого действия.

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/ScrollView01"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:scrollbars="none" >

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@ id/MainRelativeLayout"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:paddingBottom="@dimen/activity_vertical_margin"
            tools:context="com.tutecentral.tvtimeschedule.app.MainActivity"
            android:background="#87CABE"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true">

</RelativeLayout>
</ScrollView>
</LinearLayout>
 

И вот действие, которое я использую для добавления изображений

         int amountOfChannels = 9;
        int paddingTopOfImage = 0;

        for(int i = 1; i <= amountOfChannels; i  ) {

            //ImageView Setup
            ImageView imageView = new ImageView(this);
            //setting image resource
            imageView.setImageResource(R.drawable.channel_1);
            //setting image position

            imageView.setLayoutParams(new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.MATCH_PARENT,
                    RelativeLayout.LayoutParams.MATCH_PARENT));

            imageView.getLayoutParams().height = 400;
            imageView.getLayoutParams().width = 1000;

            imageView.setPadding(10, 10, 10, 10);
            imageView.setBackgroundColor(Color.WHITE);
            imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            imageView.setY(paddingTopOfImage);

            //adding view to layout
            RelativeLayout mainRelativeLayout = (RelativeLayout) findViewById(R.id.MainRelativeLayout);
            mainRelativeLayout.addView(imageView);

            paddingTopOfImage = paddingTopOfImage   450;

        }
 

Ответ №1:

Я не думаю, что вам нужно помещать ScrollView в LinearLayout, потому что ScrollView по умолчанию является LinearLayout . Попробуйте удалить LinearLayout.