У меня была похожая проблема, когда у меня было прокручиваемое изображение под фиксированной панелью навигации на AbsoluteLayout.
Я установил высоту прокрутки на высоту моего экрана за вычетом высоты панели навигации.
Мой экран был 480dp в высоту, а navbar был в 47dp, поэтому я установил высоту scrollview на 433dp в макете xml и переместил верхнюю часть scrollview вниз под navbar, используя смещение Y.
<ScrollView
android:id="@+id/scroll_view"
android:layout_width="fill_parent"
android:layout_height="433dp"
android:layout_x="0dp"
android:layout_y="50dp"
android:fillViewport="true" >
Добавьте следующий импорт:
import android.content.Context;
import android.view.WindowManager;
import android.widget.ScrollView;
import android.view.Display;
Теперь, чтобы заставить его работать на нескольких экранах, я добавил это в onCreate для действия:
ScrollView myScrollView = (ScrollView) findViewById(R.id.scroll_view);
myScrollView.getLayoutParams().height = ((int) ScHgt(this)-47);
С помощью этой вспомогательной функции для получения высоты экрана:
//----------------------------------------------------------------------------------------------
// public static double ScHgt(Context context)
//----------------------------------------------------------------------------------------------
//return the screen height of the device
public static double ScHgt(Context context)
{
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
return display.getHeight();
}