2016-03-25 8 views
0

Ich bin ziemlich neu in Android-App-Entwicklung und ich habe in ein kleines Problem geraten.LinearLayout drängen TextView aus dem Bildschirm

Ich habe ein Linearlayout mit 2 ImageButtons in ihm und einem anderen Linearlayout mit einem Textview auf der Oberseite, wie Sie hier sehen können -

Looks pretty-ish

Allerdings habe ich versucht, einen anderen Linearlayout hinzufügen mehr Dinge hinzufügen in, aber es beginnt meine Begrüßungsnachricht aus dem Bildschirm

I add another LinearLayout and this happens

Hier ist der XML für den Bildschirm zu schieben

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="vertical" 
      android:layout_weight="0.6" 
      android:id="@+id/layout_home"> 

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/scrollView" 
    > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:orientation="vertical" 
     android:paddingLeft="0dp" 
     android:paddingRight="0dp" 
     > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:measureWithLargestChild="false" 
      android:longClickable="false"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="Welcome" 
       android:id="@+id/textView4" 
       android:textSize="60dp" 
       android:layout_weight="1" 
       android:layout_gravity="top"/> 
     </LinearLayout> 

     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="56dp" 
      android:paddingLeft="5dp" 
      android:paddingRight="5dp" 
      android:background="#5cfca1"> 

     </LinearLayout> 

     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingLeft="5dp" 
      android:paddingRight="5dp"> 

      <ImageButton 
       android:id="@+id/whatisit" 
       android:layout_width="fill_parent" 
       android:layout_height="100dp" 
       android:layout_weight="0.5"/> 

      <ImageButton 
       android:id="@+id/contact" 
       android:layout_width="fill_parent" 
       android:layout_height="100dp" 
       android:layout_weight="0.5"/> 
     </LinearLayout> 

     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingRight="5dp" 
      android:paddingLeft="5dp" 
      android:paddingBottom="300dp"> 

      <ImageButton 
       android:id="@+id/howcanitreatit" 
       android:layout_width="fill_parent" 
       android:layout_height="100dp" 
       android:layout_weight="0.5"/> 

      <ImageButton 
       android:id="@+id/disclaimer" 
       android:layout_width="fill_parent" 
       android:layout_height="100dp" 
       android:layout_weight="0.5" 
       android:adjustViewBounds="false"/> 
     </LinearLayout> 

    </LinearLayout> 
</ScrollView> 

Editiert: styles.xml

<resources> 

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 


</style> 

ich bei anderen Fragen haben gesucht, aber sie haben schien viel anders in Bezug auf Festlegung ihrer Layout zu tun und haben viel mehr Elemente und so.

Warum drückt es die Willkommensnachricht aus? Was mache ich hier falsch?

Auch fühlen Sie sich frei, alles zu hinterfragen. Je mehr Fehler, die ich gemacht habe, desto besser

+0

warum hinzufügen layout weight? –

+0

Datei 'style.xml' hochladen. –

+0

@ZeeshanShabbir Die layout_weight auf den ImageButtons soll sie teilen. Alles andere ist wahrscheinlich ein Fehler beim Experimentieren – JPanda

Antwort

0

In diesem Teil des Codes (2 LinearLayout):

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:orientation="vertical" 
     android:paddingLeft="0dp" 
     android:paddingRight="0dp" 
     > 

Zum Mitnehmen: android:layout_gravity="center"

Entfernen Sie auch: android:paddingBottom="300dp" aus den letzten LinearLayout

Das es zeigt machen wird, Allerdings verwenden Sie hart codierte dp Werte, das ist nie wirklich gute Übung, da Sie für viele verschiedene Bildschirmgrößen sorgen müssen.

+0

Erstaunlich! Es hat es behoben. Vielen Dank. Ich arbeite an den hart codierten Werten, jemand hat das bereits erwähnt und ich bearbeite, wie wir sprechen – JPanda

+0

Entweder/Beide Vorschläge beheben das Problem - Ihre hartcodierten 'dp' Werte schoben den Inhalt über die Bildschirmgrenze hinaus - es passte einfach nicht –

+0

Ordentlich notiert. Vielen Dank noch mal :) – JPanda

0

Versuchen Sie, diese

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:orientation="vertical" 
    android:paddingLeft="0dp" 
    android:paddingRight="0dp" 
    > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:measureWithLargestChild="false" 
     android:longClickable="false"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="Welcome" 
      android:id="@+id/textView4" 
      android:textSize="60dp" 
      android:layout_weight="1" 
      android:layout_gravity="top"/> 
    </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="56dp" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp" 
     android:background="#5cfca1"> 

    </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp"> 

     <ImageButton 
      android:id="@+id/whatisit" 
      android:layout_width="fill_parent" 
      android:layout_height="100dp" 
      android:layout_weight="0.5"/> 

     <ImageButton 
      android:id="@+id/contact" 
      android:layout_width="fill_parent" 
      android:layout_height="100dp" 
      android:layout_weight="0.5"/> 
    </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingRight="5dp" 
     android:paddingLeft="5dp" 
     android:paddingBottom="300dp"> 

     <ImageButton 
      android:id="@+id/howcanitreatit" 
      android:layout_width="fill_parent" 
      android:layout_height="100dp" 
      android:layout_weight="0.5"/> 

     <ImageButton 
      android:id="@+id/disclaimer" 
      android:layout_width="fill_parent" 
      android:layout_height="100dp" 
      android:layout_weight="0.5" 
      android:adjustViewBounds="false"/> 
    </LinearLayout> 

</LinearLayout> 

+0

Vielen Dank für Ihre Hilfe. Leider hat dies keinen Unterschied gemacht (Immer noch das gleiche Ergebnis) – JPanda

0

Die android_height und android_width Eigenschaften gibt es den Bildschirm zu sagen, wie zu machen , Ihre Begrüßung msg haben eine Eigenschaft fill_parent, die im Grunde sagt, es sollte sich über den gesamten Bildschirm verteilen, ändern Sie es in Wrap c Egal, wie für jetzt die Höhen und Breiten, die Sie gab es wahrscheinlich größer als die Bildschirmgröße und auch eine schlechte HABIT, da es nicht die 7300 + verschiedenen Android-Handys da draußen, wie eine Daumenregel Sie sollten diese Größen halten XML. , um mehr über das lesen, lesen Sie bitte this Artikel

+0

Das sagen die meisten Tutorials nicht. Vielen Dank für diesen Hinweis! Werde einen Blick auf diese Seite werfen und in Kürze bearbeiten – JPanda

0

Versuchen Sie, eine feste Höhe für die TextView Willkommen einstellen, wenn diese mit Ihrer Anforderung möglich.

E.g: android:layout_height="65dp"

+0

Hallo und vielen Dank für Ihre Antwort! Leider hat es immer noch das gleiche Ergebnis: https://sc-cdn.scaleengine.net/i/ced0966c2ba69294afab0839f80e6d40.png – JPanda

0

Versuchen Sie, das folgende LOC von der zweiten LinearLayout zu entfernen. zB: Die LinearLayout kurz nach der ScrollView.

android:layout_gravity="center" 
Verwandte Themen