0

안드로이드 디자인 지원 라이브러리 25.0.1을 사용하고 있습니다, 붕괴 도구 모음 레이아웃에 제목과 함께 하나의 문제가 있습니다, 내 제목은 길고 공간이있을 때도 확장 조건에서 줄임표가 있습니다 그것을 보여주기 위해서.툴바 레이아웃 붕괴 안드로이드 제목 ellipsizes

확장 모드에서 줄임표로 표시 할 수있는 해결 방법이 있습니까? .

although there is some space availbale the title is ellispsized

붕괴 도구 모음 코드 : 내가 해결하기 위해이 라이브러리를 https://github.com/opacapp/multiline-collapsingtoolbar 사용하고

<net.opacapp.multilinecollapsingtoolbar.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:contentScrim="@color/white" 
      app:titleEnabled="true" 
      app:expandedTitleGravity="center_horizontal" 
      app:expandedTitleMarginTop="75dp" 
      app:expandedTitleTextAppearance="@style/ExpandedAppBar" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 
+0

Add 레이아웃 및 관련 파일의 코드 – blizzard

+0

@blizzard는 코드 스 니펫을 추가 했으니 좀 보시기 바랍니다. –

답변

0

도움이 될 수 있습니다 내 문제, 그것은 제목의 그림자를 제외하고는 위대한 작품이다.

0

당신은 사용자 정의 움직이는-수있는 도구 모음을 만들 수 있습니다,이 코드는 당신에게

public class MarqueeToolbar extends Toolbar { 

    TextView title; 

    public MarqueeToolbar(Context context) { 
     super(context); 
    } 

    public MarqueeToolbar(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public MarqueeToolbar(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    @Override 
    public void setTitle(CharSequence title) { 
     if (!reflected) { 
      reflected = reflectTitle(); 
     } 
     super.setTitle(title); 
     selectTitle(); 
    } 

    @Override 
    public void setTitle(int resId) { 
     if (!reflected) { 
      reflected = reflectTitle(); 
     } 
     super.setTitle(resId); 
     selectTitle(); 
    } 

    boolean reflected = false; 
    private boolean reflectTitle() { 
     try { 
      Field field = Toolbar.class.getDeclaredField("mTitleTextView"); 
      field.setAccessible(true); 
      title = (TextView) field.get(this); 
      title.setEllipsize(TextUtils.TruncateAt.MARQUEE); 
      title.setMarqueeRepeatLimit(-1); 
      return true; 
     } catch (NoSuchFieldException e) { 
      e.printStackTrace(); 
      return false; 
     } catch (IllegalAccessException e) { 
      e.printStackTrace(); 
      return false; 
     } catch (NullPointerException e) { 
      e.printStackTrace(); 
      return false; 
     } 
    } 

    public void selectTitle() { 
     if (title != null) 
      title.setSelected(true); 
    } 
} 
+0

기존 라이브러리에서 수정하여 하나 이상의 뷰를 추가 할 필요가 없습니다. ? –