2017-03-23 131 views
0

[已解決]標出了工作解決方案。 @GIBIN THOMAS:這個建議同樣適用(類似)。如何防止一個TextView將另一個TextView推出屏幕?

下面我發佈了一個問題,當評分增加時,會出現一個問題,使其擴展並將其他TextView推出屏幕。我試着用各種方式改變TextViews自身和包裝它們的Layout的寬度和高度,沒有任何運氣。

問題:任何人都得到了一個很好的解決方案如何設置我的佈局和/或TextViews的寬度和高度,以防止評分TextView從屏幕推生命TextView?

enter image description here

這是我的XML的文件:

佈局& textviews下面都在另一個佈局(包括4個按鈕,一個ImageView的和另一種的TextView - 排除的代碼)

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="10dp" 
    android:layout_marginLeft="5dp" 
    android:layout_marginStart="5dp" 
    android:orientation="horizontal"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/currentScoreText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="2dp" 
      android:layout_marginRight="2dp" 
      android:text="@string/current_score" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/currentScoreEasy" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:text="@string/current_score_0" 
      android:textColor="@android:color/holo_red_dark" 
      android:textSize="20sp" /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="205dp" 
     android:layout_marginStart="205dp" 
     android:layout_weight="1" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/lives" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="2dp" 
      android:layout_marginRight="2dp" 
      android:gravity="center" 
      android:text="@string/lives" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/currentLivesEasy" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/lives_5" 
      android:textColor="@android:color/holo_red_dark" 
      android:textSize="20sp" /> 

    </LinearLayout> 
</LinearLayout> 
+0

只需更換當前的分數線佈局與ith此相對佈局並將currentScoreText和android:layout_alignParentLeft =「true」'設置爲currentScoreEasy。請檢查完整的答案塊。 – Geek

回答

1

試試這個佈局:

使用android:weightSumandroid:layout_weight正確

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_marginBottom="10dp" 
    android:layout_marginLeft="5dp" 
    android:layout_marginStart="5dp" 
    android:orientation="horizontal" 
    android:weightSum="2"> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:gravity="left" 
     android:orientation="horizontal" 
     android:padding="10dp"> 

     <TextView 
      android:id="@+id/currentScoreText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="2dp" 
      android:layout_marginRight="2dp" 
      android:text="SCORE" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/currentScoreEasy" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="SCORE" 
      android:textColor="@android:color/holo_red_dark" 
      android:textSize="20sp" /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="right" 
     android:orientation="horizontal" 
     android:padding="10dp"> 

     <TextView 
      android:id="@+id/lives" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="2dp" 
      android:layout_marginRight="2dp" 
      android:gravity="center" 
      android:text="Lives" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/currentLivesEasy" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Lives" 
      android:textColor="@android:color/holo_red_dark" 
      android:textSize="20sp" /> 

    </LinearLayout> 
</LinearLayout> 

輸出:

enter image description here

1

這將解決您的問題

<LinearLayout android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="10dp" 
    android:layout_marginLeft="5dp" 
    android:layout_marginStart="5dp" 
    android:orientation="horizontal" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/currentScoreText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="2dp" 
      android:layout_marginRight="2dp" 
      android:text="Current Score" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/currentScoreEasy" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:text="Scrore" 
      android:textColor="@android:color/holo_red_dark" 
      android:textSize="20sp" /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/lives" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="2dp" 
      android:layout_marginRight="2dp" 
      android:gravity="center" 
      android:text="Lives" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/currentLivesEasy" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Lives 5" 
      android:textColor="@android:color/holo_red_dark" 
      android:textSize="20sp" /> 

    </LinearLayout> 
</LinearLayout> 

請刪除我已添加的字符串,如果您有進一步懷疑隨時記下下面

+0

感謝您的建議,標出了工作解決方案。但我也嘗試過你,它的工作原理一樣好!感謝幫助! –

0

請確保應用適當的體重其他變化如下:

<LinearLayout android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="10dp" 
    android:orientation="horizontal" 
    android:padding="10dp" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="left" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/currentScoreText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="2dp" 
      android:layout_marginRight="2dp" 
      android:text="current_score" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/currentScoreEasy" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_marginLeft="10dp" 
      android:layout_height="wrap_content" 
      android:text="current_score_0" 
      android:textColor="@android:color/holo_red_dark" 
      android:textSize="20sp" /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="right" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/lives" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="2dp" 
      android:layout_marginRight="2dp" 
      android:gravity="center" 
      android:text="lives" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/currentLivesEasy" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="lives_5" 
      android:textColor="@android:color/holo_red_dark" 
      android:textSize="20sp" /> 

    </LinearLayout> 
</LinearLayout> 
0

只要給的LinearLayout,layout_weight = 「5」。像

機器人:layout_weight = 「3」,並在android:layout_width = 「0像素」

注=「設置佈局根據您的間距」重...

線性佈局中,u已安裝這兩個textviews

0
Simply replace your current score linear layout with this relative layout and you are done. 
<RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

    <TextView 
     android:id="@+id/currentScoreText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginEnd="2dp" 
     android:layout_marginRight="2dp" 
     android:layout_alignParentLeft="true" 
     android:text="current_score" 
     android:textColor="@android:color/black" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/currentScoreEasy" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:text="current_score_0" 
     android:textColor="@android:color/holo_red_dark" 
     android:textSize="20sp" /> 

</RelativeLayout> 
+0

感謝您的建議,我標出了工作解決方案。但也想嘗試一下,不幸的是它不起作用。不管怎麼說,還是要謝謝你。 –

+0

@FisnikB。你找到了很好的解決方案。我正在使用它,它對我的​​工作很好。我已根據您的需要進行了一些修改。你可以試試嗎?謝謝 – Geek

+0

我認爲這個問題是由於你不知道我的代碼的其餘部分如何。猜猜這是什麼讓你失望。你剛剛做了一個新的編輯? –