2017-02-07 5 views
0

Я использую Material-UI (http://material-ui.com) для React.JS, чтобы сделать мобильное приложение. У меня проблема с элементами списка, прокручивающими их содержимое поверх панели приложений. Другое содержимое (например, обычный текст абзаца в документе </>) прокручивается в порядке.Материал-UI Список элементов прокручивается поверх AppBar

Эта фотография показывает, как прокручивать содержание получает в верхней части приложения бар:

enter image description here

В то время как эти фотографии показывают некоторые дополнительные обычный текст (источник ниже), прокручивать штраф:

enter image description here

Элементы «Некоторые тексты» прокручиваются правильно под AppBar:

enter image description here

«Обыкновенный» текст (т. не текст производится из свойств ListItem) прокручивается штраф:

enter image description here

Это основной список рендеринга код:

renderConcerts() { 
    return this.props.search.list.map((concert) => { 
     return (
      <ListItem key={concert.id} 
       primaryText={concert.work} 
       secondaryText={concert.composer} 
      /> 
     ) 
    }); 
} 
renderContent() { 
    console.log("renderContent ", this.props.search.classifier); 
    const style = { 
     margin: 12, 
    }; 
    .... 

    return <div id="mypaper"> 
     <p>Some text1</p> 
     <Paper style={style}> 
     <p>Some text2</p> 
     <div className="content"> 
      <p>Some text3</p> 
      <List> 
      {this.renderConcerts()} 
      </List> 
     </div> 
     </Paper> 
    </div>; 
} 

render() { 
    console.log("render"); 
    return (
     <div> 
      <ResultHeader/> 
      {this.renderContent()} 
     </div> 
    ); 
} 

ResultHeader компонент:

export const ResultHeader = (props) => 
    <header> 
     <AppBar 
      title="Results" 
      onLeftIconButtonTouchTap={hashHistory.goBack} 
      iconElementLeft={<IconButton><ArrowBack /></IconButton>} 
     /> 
    </header>; 

Styling:

#mypaper { 
    width: 100%; 
    margin: 0 auto; 
    padding: 60px 0; 
    overflow: auto; !important; 
} 
.content { 
    margin: 10px; 
    padding-bottom: 26pt; 
    font-size: 12px; 
    text-align: left; 
} 
.content table, .season tbody { 
    border: none; 
    font-size: 12px ; 
} 
.content h2 { 
    font-size: x-large; 
    color: #19768F; 
    margin-top: 10px; 
    margin-bottom: 3px; 
} 
.content h3 { 
    font-size: 14px ; 
    font-style: normal; 
    font-weight: bold; 
    margin-top: 10px; 
    margin-bottom: 2px; 
    color: #313C3F; 
} 

UPDATE: Я пытался добавить Z-индекс: 100 до AppBar, но ничего не помогло:

enter image description here

Кроме того, замена списка с таблицей дает довольно много такое же поведение, то есть некоторое содержание (заголовок и выберите поле) находится над AppBar в то время как другой контент прокручивается красиво под ним:

enter image description here

+0

какая версия 'материал-ui' вы используете? – szymonm

+0

Версия 0.16.7 (самая новая за сегодня) –

ответ

1

Добавить z-index: 100, или больше, если вам нужно AppBar.

+0

Пробовал, что не помогает. –

+1

Хорошо, попробуйте добавить 'position: relative',' z-index: 1000' в панель приложений и то же самое, но 'z-inex: 100' в список. –

+0

Спасибо за советы! Хотя это не проблема напрямую, это привело меня к правильному пути! Проблема в моем случае была тега

, окружающая . У него был собственный стиль, сбивающий с толку z-индексы; при отладке z-индексов я мог видеть, что область с z-index 1000 эффективно прокручивалась вместе с текстом из экрана. Вместо этого добавьте ваше предложение 1000 в заголовок (заголовок имеет фиксированную позицию), решил проблему, спасибо, –