2016-10-09 2 views
0

Xamarin Forms의 ListView를 사용하고 있습니다. 지금까지 사용자 정의 DataTemplate을 사용하여 일부 데이터를 표시했습니다. 이제 이미지 내부/외부에 텍스트를 표시하도록이 기능을 확장하려고합니다. 이런 식으로 뭔가 : Xamarin From ListView의 사용자 지정 서식 파일

enter image description here

코드, 내가 지금까지 사용하고 있습니다. 그러나이 경우 텍스트가 이미지 위에 있습니다.

<ListView x:Name="MyListView" 
      ItemsSource="{Binding myData}" 
      RowHeight="190" 
      HasUnevenRows="True"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
     <ViewCell> 
      <ViewCell.View> 
      <StackLayout Padding="10" Orientation="Vertical"> 
       <Label Text="{Binding Title}" 
        FontSize="Large" 
        VerticalOptions="Center" 
        TextColor="#31659e"> 
       </Label>     
       <Image Source="http://www.someurl.com/images/image1.jpg" Aspect="AspectFill"></Image>     
      </StackLayout> 
      </ViewCell.View> 
     </ViewCell> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
    </ListView> 

첫 번째 이미지의 결과는 어떻게 얻을 수 있습니까?

누구에게도 예제/링크/팁이 있다면 도움이 될 것입니다.

감사

+0

bool 속성을 IsVisable 속성에 바인딩하고 다른 항목을 비활성화 할 수 있습니다. –

+0

이 [snppt] (https://snppts.io/snippet/23)에서 이러한 종류의 플랫폼을 만들려고합니다. 디자인. 배경 이미지 위에 텍스트가 있습니다. –

답변

1

당신은 RelativeLayout를 사용할 수 있습니다. 그것은 당신의 데이터 템플릿 ViewCell.View

<RelativeLayout> 
    <!-- Background --> 
    <Image Source="http://www.someurl.com/images/image1.jpg" Aspect="AspectFill" 
      RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width}" 
      RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height}" /> 
    <!-- Text --> 
    <StackLayout Padding="10" Orientation="Vertical" VerticalOptions="EndAndExpand" 
       RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width}" 
       RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height}" > 
     <Label Text="{Binding Title}" 
      FontSize="Large" 
      TextColor="#31659e"> 
     </Label> 
     <Label Text="{Binding SubTitle}" 
      TextColor="#31659e"> 
     </Label> 
    </StackLayout> 
</RelativeLayout> 

이 이미지와 같은 높이로 stacklayout을 뻗어과 botttom에서 StackLayout의 내용을 정렬이 같을 것이다.

+0

해당 코드는 예상대로 작동합니다. 난 단지 몇 가지 조작을했습니다, 고마워요 – MikePR

+0

이제 위의 이미지로 데이터가 표시됩니다. 텍스트 만 아래쪽이 아니라 위쪽에 표시됩니다. 나는 그 일을하고있다. 그러나 일반적으로 코드는 작동합니다. – MikePR

관련 문제