Layout ScrollView non riempie l'integer schermo

Ho un'attività con due Fragment s (una list normale). E il normale Fragment gonfia una Scrollview contenente una LineaLayout (verticale) e questo layout contiene TextViews . Lo ScrollView e il layout_width e il layout_height sono match_parent , quindi penso che l'integer schermo dovrebbe essere utilizzato. Ma sul fondo c'è ancora un "divario". Spero che puoi aiutarmi.

ScrollView.xml

  • Orientamento e valori dello schermo in manifest.xml
  • Utilizzo di tabulatore / tabspace in un TextView
  • Funzioni USB Android?
  • "RecyclerView: Nessun adattatore collegato; skipping layout "per recyclerview in frammento
  • Come aggiungere attributo extra alla function Parse Signup?
  • Costruire AOSP per il mio dispositivo HTC
  •  <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/titlescreen_bg" android:orientation="vertical" android:paddingTop="60dp" tools:context=".MainActivity" > <TextView android:id="@+id/tv_headline" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:paddingBottom="60dp" android:paddingTop="60dp" android:textIsSelectable="false" android:textSize="@dimen/fontsize_slogan_titlescreen" /> <TextView android:id="@+id/tv_content" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:paddingBottom="30dp" android:paddingTop="30dp" android:textIsSelectable="false" android:textSize="@dimen/fontsize_slogan_titlescreen" /> </LinearLayout> </ScrollView> 

    il frammento che gonfia questo layout.

     package wak.iage.layout; import wak.iage.R; import android.app.Fragment; import android.graphics.Color; import android.graphics.Typeface; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; import android.widget.TextView; public class MenuContentFragment extends Fragment { LinearLayout.LayoutParams relativeParams = new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); LinearLayout topLayout = null; TextView body = null; TextView head = null; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.menu_content_main, container); return v; } public void changeText(String title, String content) { topLayout = (LinearLayout) getActivity().findViewById( R.id.LinearLayout1); head = (TextView) getActivity().findViewById(R.id.tv_headline); body = (TextView) getActivity().findViewById(R.id.tv_content); if (body == null) { topLayout.removeViews(1, topLayout.getChildCount() - 1); body = new TextView(getActivity().getApplicationContext()); body.setPadding(0, 30, 0, 20); body.setTextColor(Color.BLACK); body.setTextSize(22); body.setGravity(Gravity.CENTER_HORIZONTAL); topLayout.addView(body, relativeParams); } body.setText(content); head.setText(title); } public void addGlossary() { if (body != null) { topLayout.removeView(body); } int i = 0; for (int id : GLOSSARY) { TextView glossary = new TextView(getActivity() .getApplicationContext()); glossary.setText(getString(id)); glossary.setTextColor(Color.BLACK); if (i % 2 == 0) { glossary.setTypeface(Typeface.DEFAULT_BOLD); glossary.setTextSize(22); glossary.setPadding(0, 10, 0, 10); } topLayout.addView(glossary, relativeParams); i += 1; } } public static final int[] GLOSSARY = { R.string.GlossaryAndroidOSTitle, R.string.GlossaryAndroidOSContent, R.string.GlossaryAppTitle, R.string.GlossaryAppContent, R.string.GlossaryCloudTitle, R.string.GlossaryCloudContent, R.string.GlossaryDonwloadTitle, R.string.GlossaryDonwloadContent, R.string.GlossaryFacebookTitle, R.string.GlossaryFacebookContent, R.string.GlossaryGPSTitle, R.string.GlossaryGPSContent, R.string.GlossaryHomescreenTitle, R.string.GlossaryHomescreenContent, R.string.GlossaryPasswordTitle, R.string.GlossaryPasswordContent, R.string.GlossaryRouterTitle, R.string.GlossaryRouterContent, R.string.GlossarySDTitle, R.string.GlossaySDContent, R.string.GlossayStandbyTitle, R.string.GlossayStandbyContent, R.string.GlossaryTabletTitle, R.string.GlossaryTabletContent, R.string.GlossaryTouchscreenTitle, R.string.GlossaryTouchscreenContent, R.string.GlossayWidgetsTitle, R.string.GlossayWidgetsContent, R.string.GlossayWLANTitle, R.string.GlossayWLANContent }; } 

    Molte grazie.

    Modifica: Anche il proble è già risolto con: android: fillViewPort = "true", voglio mostrarvi il problema.

    Ma non ho abbastanza reputazione per submit un'image. Scusate!

  • Il firebase gestisce i propri dati personali come token di dispositivo, bundle id ecc. Quando invii notifiche push o dobbiamo gestire questi dati?
  • Plug-in Android Studio e Bitbucket
  • HTTPS e un certificato autenticato
  • È ansible aggiungere immagini in una barra degli strumenti?
  • Trasmissione aggiornamento app Android
  • Perché la mia applicazione inizia incredibilmente lento (10s +) alla prima esecuzione, mostrando solo schermo bianco su android 5.0?
  • 3 Solutions collect form web for “Layout ScrollView non riempie l'integer schermo”

    Se non sono sbagliato, l'altezza di LinearLayout (l'altezza di LinearLayout nel tuo caso), cioè il figlio (solo) all'interno di un ScrollView , viene sempre interpretata come wrap_content, poiché tale contenuto può essere maggiore di quello di ScrollView altezza (quindi le barre di scorrimento).

    Ciò significa anche che se il contenuto è più piccolo , il contenuto di ScrollView (figlio) potrebbe non necessariamente essere allungato per riempire lo schermo.

    Per aiutarti visivamente a risolvere questo problema, dobbiamo vedere uno screenshot del tuo problema.

    Forse l'impostazione di android:fillViewport="true" su ScrollView risolve il problema:

     <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> 
     <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="true" android:fadeScrollbars="false" android:scrollbars="vertical" > 

    Nel tuo ScrollView aggiungere un attributo cioè. Android: fillViewport = "true"

     inflater.inflate(R.layout.menu_content_main, container); 

    dovrebbe essere

     inflater.inflate(R.layout.menu_content_main, container, false); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.