2017-01-18 1 views
1

enter image description here왜이 아이콘이 잘립니다?

오른쪽에서 볼 수있는 얼굴 아이콘이 잘리고 왜 그런지 잘 모르겠습니다.

여기 내 코드입니다 :

PrecisionTextOverflow 내가 화면에 텍스트를 칠하는 CustomPainter를 사용하는 StatelessWidget 만든 클래스임을
new Container(
    padding: new EdgeInsets.fromLTRB(style.wideMargin, style.wideMargin * 2, 
     style.wideMargin, style.wideMargin), 
    decoration: new BoxDecoration(backgroundColor: Colors.white), 
    child: new Row(
    crossAxisAlignment: CrossAxisAlignment.end, 
    children: [ 
     new Expanded(
     child: new Column(
      crossAxisAlignment: CrossAxisAlignment.start, 
      children: [ 
      new PrecisionTextOverflow(
       'Name of a thing', 
       lineWidth: style.longLineWrappingWidth, 
       mainTextStyle: style.blackParagraphText), 
      // Because PrecisionTextOverflow paints itself directly, the UI 
      // doesn't know its size so we use a blank Text object to make the 
      // column center itself correctly. 
      new Text(' '), 
      ], 
     ), 
    ), 
     new Transform(
     transform: 
      new Matrix4.translationValues(0.0, -style.defaultMargin, 0.0), 
     child: new IconButton(
      padding: EdgeInsets.zero, 
      icon: new Icon(Icons.face, 
       size: style.headingText.fontSize, 
       color: style.favoriteColor[isItemFavorite]), 
      onPressed: favoritePressed, 
     ), 
    ), 
    ], 
), 
) 

. 나는 그 문제와 관련이 있다고 생각하지 않지만 단지 FYI.

외부 컨테이너에서 패딩을 제거하려고 시도했지만 도움이되지 않습니다. 아이콘을 왼쪽으로 이동하기 위해 변형을 조정하려고 시도했지만 잘라낸 형태로 이동합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 이 문제를 어떻게 해결할 수 있습니까?

편집 : 좋아, 나무 렌더링 덤프를했고, 둘러싸는 행이 자체 (24.0, 24.0)의 크기를 제공하는 IconButton 아래에 전달 24.0와 같은 높이를 설정하는 것 같습니다. 행의 높이를 높이는 방법이 있습니까? 아니면 내 전체 구조를 재고해야합니까?

+1

렌더링 트리를 덤프 ("flutter run"을 사용하는 경우에는 "t"를, 그렇지 않으면'package : flutter/rendering.dart'에서'debugDumpRenderTree()를 호출) 할 것입니다. 그러면 누가 클리핑 작업을하고 있는지 알 수 있습니다. –

+0

행은 아마도 IconButton을 기반으로 자체 크기 조정을하고 있습니다 (크기는 자식 배열 후에 설정됩니다). 렌더 트리 덤프를 어딘가에 업로드하면 우리는 그것을 볼 수 있고 그것이 유용한 것을 알 수 있습니다. –

+0

다음은 렌더 트리 덤프가있는 txt 파일에 대한 링크입니다. Google 문서 도구는 줄 문자를 올바르게 표시하지 않으므로 일반 텍스트 편집기에서 열면 올바르게 표시됩니다 (https://drive.google.com/a/google.com/file/d/0B-6EzwxsJ2BKWVh1SE5qV0ozWTA/view? usp = sharing – Reagankm

답변

3

IconButton이 아니라 아이콘에 size을 설정하고 있습니다. size 인수를 IconButton으로 옮기면 작동합니다.

IconButton의 기본값은 24.0이며 제한되지 않은 공간에 크기가 있으므로 LimitedBox을 통해 24.0으로 크기가 제한됩니다. 그런 다음 해당 크기를 IconTheme 상속 된 위젯을 통해 Icon으로 전달하려고 시도하지만, Icon은 무시하고 30.0 크기 여야합니다.

문서를 개선하겠습니다.

+0

고맙습니다. 내가 그걸 놓친 걸 믿을 수가 없어. – Reagankm

+1

문서가 끔찍했다. 나는이 대화를 기반으로 그들을 개선하고 개선했습니다. :-) –