2017-03-23 109 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

我认为这个问题是由于你不知道我的代码的其余部分如何。猜猜这是什么让你失望。你刚刚做了一个新的编辑? –