Open koocci opened 6 years ago
안녕하세요~ 샘플소스까지 자세히 올려주셔서 감사합니다~ 구현에 실수하신 부분은 없으신것 같습니다~.
textview setText 이후에 (ScalableLayout instance).requestLayout(); (ScalableLayout instance).forceLayout(); 한번 호출해보시겠어요~?
소스 172Line에서 확인하실수 있듯이 TextView에는 TextWatcher를 달았었는데 AppCompatTextView의 경우를 대응하지 못 한것 같네요. 알려주셔서 감사합니다~. 저도 테스트해보고 소스 업데이트 하겠습니다~ ㅎ
답변 감사합니다. ListView Custom Adapter 내에서 GetView 함수에 ViewHolder에 저장된 ScalableLayout instance에 return 하면서 말씀하신 호출을 적용해 보았습니다만 상황은 이전과 똑같은것 같습니다.
public class CustomAdapter extends ArrayAdapter
...
@NonNull @Override public View getView(int position, View convertView, ViewGroup parent) { ... rootView = inflater.inflate(R.layout.content_my_item, parent, false); viewHolder.sl = (ScalableLayout) rootView.findViewById(R.id.sl); viewHolder.content = (TextView) rootView.findViewById(R.id.content);
...
viewHolder.content.setText(myItem.content);
...
viewHolder.sl.requestLayout();
viewHolder.sl.forceLayout();
return rootView;
}
...
}
다른 방향으로 해결할 방법이 있을까요? 감사합니다.
흠~ 그럼 handler postDelayed를 이용해서 setText 후 100ms 뒤에 requestLayout, forceLayout 실행 한번 해봐주시겠어요?
먼저, 라이브러리 정말 잘 쓰고 있습니다. 감사하다는 말씀 먼저 드리고 싶습니다. 다만, 제가 잘못 사용한 것인지, ListView Item에서 WrapContent로 TextView 를 Text 길이에 맞게 하단으로 늘려주려고 했습니다만, 한 두개씩 Text가 한줄밖에 출력이 되지 않는 상황이 발생합니다.
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="horizontal">
</android.support.v7.widget.LinearLayoutCompat>
Item의 코드는 다음과 같고, content 라는 아이디를 가진 TextView에서
app:textview_wrapcontent_resizesurrounded="true"
app:textview_wrapcontent_direction="bottom"
app:textview_wrapcontent_movesiblings="true"
세가지를 쓰면서 하단으로 동적으로 늘려주려 했습니다만, 3줄까지 출력되는 것이 있고, 1줄만 나오고 텍스트가 끊어질 때도 있습니다. (리스트 뷰가 20개를 로드하면, 4~5개는 잘려서 나옵니다)
혹시 해당사항의 구현에 제가 실수한 부분인지 여쭙고 싶습니다. 감사합니다.