2015-11-18 11 views
7

アンドロイド:ellipsize = "マーキー"を使用し、テキストがオーバーフローするパディング結果が表示される、一部のAndroid搭載端末(Android LおよびM搭載のLG Google Nexus 5)テキストビューこれは、TextViewの左側ではなく、右側で発生しますが、パディングは左右の両方に適用されます。テキストのオーバーフローを修正する方法アンドロイド:ellipsize = "マーキー"

screenshot

はそれぞれ、アンドロイドK及びLとサムスンギャラクシーS3及びS6で発生しません。

<TextView 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginBottom="1dp" 
android:paddingTop="2dp" 
android:paddingBottom="2dp" 
android:paddingLeft="4dp" 
android:paddingRight="4dp" 
android:singleLine="true" 
android:ellipsize="marquee" 
android:marqueeRepeatLimit="marquee_forever" 
android:scrollHorizontally="true" 
android:freezesText="true" 
android:alpha="0.85" 
android:background="@color/by433_gray_darker" 
android:textColor="@color/white" 
android:textSize="11sp" /> 

この問題を修正するにはどうすればよいですか?

答えて

2

あなたの問題AndroidやAndroidのオープンソースプロジェクトにalready reported and assignedのバグです:あなたの回避策は、このように見えるかもしれ

:だから

<FrameLayout android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingTop="2dp" 
      android:paddingBottom="2dp" 
      android:paddingLeft="4dp" 
      android:paddingRight="4dp" 
      android:layout_marginBottom="1dp" 
      android:background="@color/by433_gray_darker"> 
    <TextView 
     android:id="@+id/textId" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:singleLine="true" 
     android:ellipsize="marquee" 
     android:marqueeRepeatLimit="marquee_forever" 
     android:scrollHorizontally="true" 
     android:freezesText="false" 
     android:alpha="0.85" 
     android:text="super nice text text text text text text text text text text text text text text text text text" 
     android:textColor="@color/white" 
     android:textSize="11sp" /> 
</FrameLayout> 

、アイデアは、パディングとラッパーのコンテナを持つことです、マージンと背景。問題は、上のように多くの属性の組み合わせによるものであるかもしれない(あなたは、このような意見の唯一のカップルを持っている場合には、パフォーマンスのオーバーヘッドの多くではありません)


オリジナル不正解(2 TextViewsがあったものの) あなたのTextView。ここではいくつかの提案は以下のとおりです。

  1. まずあなたが代わりにテキストビューのあなたのコンテナのパディングを指定しようとすることができます
  2. 結果を確認する1で属性1を削除しよう
  3. あなたのレイアウトから
  4. それはあなたができると思われます

    <LinearLayout android:orientation="horizontal" ...> 
        <TextView android:layout_width="0dp" android:layout_weight="1" ... /> 
        <TextView android:layout_width="0dp" android:layout_weight="1" ... /> 
    </LinearLayout> 
    
+0

おかげグレゴリーを、私は右のnを確認する時間がありません:あなたのテキストビューに代わり「match_parent」のこの ような何かを試してみてください私はあなたに恩恵を与えるでしょう..そうでなければ、恩恵は消えます:P .. 'しかし、今のところ、主な質問が残っています..なぜそれがないのですか? Android KとLを使用してSamsung Galaxy S3とS6で発生します。 –

+0

@WojtekDmyszewiczは、この問題を修正/回避する方法のいくつかのアイデアを提供したかったのです。あなたがコードの問題コード(私はコンテナ+テキストビューを意味する)を提供することができる場合は、それをもう少し見てください – GregoryK

+0

質問が答えられない場合、なぜ賞金を与えるのですか?テキストビューは、親(relativelayout)の底に整列された線形レイアウト(タイトルテキストビュー)の内側に位置します。問題の核心は、なぜこのオーバーフローが一部のデバイスで片側で起こるのかということです。ソリューション3が機能することを証明してください。 –

関連する問題