2016-08-02 5 views
2

메시지가 커서 2 줄 이후 잘려서 메시지를 표시하기 위해 디자인 지원 라이브러리의 스낵바를 사용하고 있습니다. 다음 코드를 사용하여 snackbar textview에 의해 maxlines을 변경하려고 시도하면 null이 반환됩니다. Snackbar는 내 프로젝트에서 가지고있는 라이브러리 모듈에 있습니다.Snackbar textview가 라이브러리 모듈에서 null을 반환합니다.

View snackbarView = snackbar.getView(); 
TextView textView = (TextView)snackbarView.findViewById(android.support.design.R.id.snackbar_text); 
textView.setMaxLines(5); 

답변

1

좋아, 나는 같은 문제가 있었다. 나는 많은 수의 utils와 함께 maven repo를 가지고있다. 그리고 "getConfiguredSnackBar"메서드는 스낵바 텍스트의 색을 흰색으로 변경합니다. 일부 테마는이를 검은 색으로 변경하여 읽을 수 없기 때문입니다.

aproach를 사용하여 정상적으로 작동합니다 (동일한 모듈에있는 경우). 그러나 라이브러리에서 findViewById (android.support.design.R.id.snackbar_text)는 null입니다.

내 추한하지만, 작업 방법 :

@Nullable 
private static TextView findTextViewInSnackbar(Snackbar snackbar){ 
    ViewGroup snackView = ((ViewGroup) snackbar.getView()); 
    for (int i = 0; i < snackView.getChildCount(); i++) { 
     View child = snackView.getChildAt(i); 
     if (child instanceof TextView) { 
      return ((TextView) child); 
     } 
    } 
    return null; 
} 

그것은 작업의 잘. 어떤 이유로 텍스트 뷰가 두 개 이상인 경우에는 ... 행운을 빈다. 수정하고 원하는대로 수행하십시오.