2016-05-31 7 views
1

私はmaxLines = 1の場合、文字/テキストがTextViewでカットされるのはなぜですか?

私は "https://で" とURLを示しているのTextView持って持っているものプレフィックスを:

<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height="wrap_content"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="test2" 
      android:maxLines="1" 
      android:ellipsize="marquee" 
      android:textStyle="bold" 
      android:textSize="16sp" 
      android:textColor="@color/primary_text" 
      android:id="@+id/txvNomEntornIversio" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="https://test2.sdasasdasdfasdfasdffasdfasdfasdf.sdffd" 
      android:ellipsize="end" 
      android:maxLines="1" 
      android:paddingLeft="10dp" 
      android:textSize="13sp" 
      android:textStyle="italic" 
      android:id="@+id/txvUrlEntorn"/> 

    </LinearLayout> 

何が問題なの?

後のコードを実行アンドロイドスタジオプレビューで、デバイスでの結果だった:

前のコードを実行した場合: enter image description here

:私は、 "/" の記号を削除した場合 enter image description here

をシンボルを別の位置に移動した場合: enter image description here



私は

を必要とするものを私は接頭辞「https://で」を表示する必要が利用可能なスペースに合わせて、最大文字で。私はread documentation(setEllipsizeブロック)しようとしたが見つかりました。このシンボルと何もいくつかの参照を探し、stackoverflowので検索

を試しWHAT

。 私はまた、効果のないシンボルを描写しようとしました。

なぜそれが発生し、私を助けることができるか知っていますか?前もって感謝します!

UPDATED LAYOUT

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/card_view" 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:paddingLeft="10dp" 
    android:paddingRight="10dp" 
    android:paddingTop="15dp" 
    android:paddingBottom="15dp" 
    android:layout_height="wrap_content"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="@string/icon_unchecked" 
     android:layout_marginRight="10dp" 
     android:id="@+id/txvIconChecked"/> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="test2" 
      android:maxLines="1" 
      android:ellipsize="marquee" 
      android:textStyle="bold" 
      android:textSize="16sp" 
      android:textColor="@color/primary_text" 
      android:id="@+id/txvNomEntornIversio" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="https://mydomain.asdfasdasdfasdfasdffasdfasdfasdf.cat" 
      android:ellipsize="end" 
      android:maxLines="1" 
      android:paddingLeft="10dp" 
      android:textSize="13sp" 
      android:textStyle="italic" 
      android:id="@+id/txvUrlEntorn"/> 

    </LinearLayout> 

</LinearLayout> 

enter image description here

enter image description here

UPDATE 2

Teikyのおかげで、この問題はAPI 23より低いバージョンでのみ発生することが判明しました。これはバグかもしれませんか?

オプション(旧式)Android:SingleLine = "true"は、すべてのバージョンで正しく動作するようです。代わりに、オプションのアンドロイド新しい:アンドロイドとMAXLINES:現時点でellipsizeはわずか23のために働く...

、最も現実的な選択肢は廃止単一行を無視しているようだ... ME FOR

SOLUTION

最後に、私が前回のアップデートで言ったように、私の解決策は、アンドロイドを使い続けることでした:SingleLine = deprecatedとしてマークされていてもtrueです。

帝京大学秒、彼は4.4.4アンドロイドdipsositiuを試してみましたが、MAXLINES ellipsize ...と私を使用してうまく機能、デバイスロリポップは、私はまだ対応してシンボル/ ...

セットを見つけるために、テキストをカット帝京は問題をさらに調査するのに役立ちました。あなたの助けをありがとう!

+0

あなたの行に余分なものを追加:例えば 'https:///'最初の/は//エスケープ文字です –

+0

ありがとうジョナサン、私はこれを試しました: "https:///"と同じ結果です。 ..また、 "https:\/\ /"を試みましたが効果はありません... – jcasadellaoller

答えて

1

あなたのコードを試しましたが、URLは完全に表示されています。あなたは完全なURLを表示するのに十分な幅を持っている場合 たぶん、あなたは、これらのパラメータをチェックする必要があります:xikitidistantによって

android:layout_width="0dp" 
android:layout_weight="1" 

UPDATE:

ソリューションは、重量と幅=「0dp」ではありません。これはコードが改善されたことです。私のための解決策は、質問で更新されます。ご協力いただきありがとうございます。

+0

ありがとうTeiki。あなたは正しい、私がURLに合っていれば、これは正しく表示されている。しかし、私の勝利はURLが可能なスペースに収まらないときに可能な最大URLを表示し、最後に3つのポイントを追加します...新しいビューでコードを更新しました。 – jcasadellaoller

+1

私は理解していない、今何が問題ですか? http://imgur.com/2OcNl64 – Teiki

+0

うわー、これです!私はなぜこれが私のために働いていないのか理解できません....たぶんNavigationDrawerの項目は240dpの固定幅のメニューです。最後の変更をコンパイルしてみましょう... – jcasadellaoller

関連する問題