2015-12-13 3 views
1

Я пытаюсь сделать MyProfile деятельность в моем андроида проекте. В действии MyProfile на первом экране будет отображаться «Мой профиль Pic» вместе с моим именем и другими данными Bio о пользователе. Я хочу сделать так, чтобы экран/макет сглаживался таким образом, что если я прокручу экран вверх, моя текущая информация будет нажата вверх и появится представление списка, в котором будут отображаться сообщения пользователя.Как использовать ListView НИЖЕ LinearLayout

Я не уверен, что это возможно или нет, потому что я использую вложенные макеты для выполнения первой идеи экрана с использованием Layoutwidth и Height, заданной шириной и высотой экрана из java-кода.

Вот мой XML-код

 <View 
      android:layout_width="1dp" 
      android:layout_height="40dp" 
      android:layout_marginTop="4dp" 
      android:layout_marginLeft="25dp" 
      android:layout_marginRight="20dp" 
      android:layout_marginBottom="4dp" 
      android:background="#c0c0c0"/> 

     <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_gravity="center"> 
     <ImageView 
      android:layout_width="35dp" 
      android:layout_height="35dp" 
      android:layout_marginBottom="4dp" 
      android:src="@drawable/touch" 
      android:layout_gravity="center"/> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:id="@+id/mynumofposts" 
      android:textStyle="bold" 
      android:text="200"/> 
    </LinearLayout> 
     <View 
      android:layout_width="1dp" 
      android:layout_height="40dp" 
      android:layout_marginTop="4dp" 
      android:layout_marginLeft="20dp" 
      android:layout_marginRight="25dp" 
      android:layout_marginBottom="4dp" 
      android:background="#c0c0c0"/> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:layout_gravity="center"> 
      <ImageView 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:src="@drawable/nearbycircle" 
       android:layout_marginBottom="4dp" 
       android:layout_gravity="center"/> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:textStyle="bold" 
       android:id="@+id/mynumoffollowers" 
       android:text="300"/> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

<ListView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/myprofilelist"/></LinearLayout> 

Теперь я хочу использовать этот элемент управления ListView в нижней части, чтобы показать сообщения пользователя, но я не могу внедрить салфетки и показать список в моем приложении.

Я проверил другие подобные вопросы, но ничего не знакомы с моей проблемой.

Это то, что я достиг до сих пор, и теперь я хочу, чтобы сделать макет салфетки возможность и показать ListView enter image description here

+0

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

+0

Жесткое кодирование высоты может быть проблемой для некоторых устройств, потому что некоторые мобильные телефоны имеют небольшие дисплеи, а другие имеют большие экраны .. разве вы не думаете, что это будет проблемой? А как сделать позиции в xml? можете ли вы внести изменения в код? – deejay

+0

вы можете получить высоту экрана, а затем установить пустое представление в примере 80%, вы не можете сделать это из xml, вы должны сделать это в коде, проверить позицию в 'getView' в адаптере (' onCreateViewHolder' в утилизации), если это 0 затем показать пустой вид, иначе show list.get (позиция-1) –

ответ

1

Вы можете использовать ScrollView и Внутри этого Scrollview Используйте текущую компоновку для профиля И Элемент управления ListView

Just Like This One

<ScrollView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/scrollView" > 
    <include android:layout_height="match_parent" 
     android:layout_width="match_parent" 
     layout="@layout/your_current_layout_for_profile_without_list_view" /> 
    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/listView" /> 
</ScrollView> 

Или использовать этот макет (модифицирована с помощью условии XML)

<ScrollView 
    android:id="@+id/scrollView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <View 
      android:layout_width="1dp" 
      android:layout_height="40dp" 
      android:layout_marginBottom="4dp" 
      android:layout_marginLeft="25dp" 
      android:layout_marginRight="20dp" 
      android:layout_marginTop="4dp" 
      android:background="#c0c0c0" /> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:orientation="vertical"> 

      <ImageView 
       android:layout_width="35dp" 
       android:layout_height="35dp" 
       android:layout_gravity="center" 
       android:layout_marginBottom="4dp" 
       android:src="@drawable/touch" /> 

      <TextView 
       android:id="@+id/mynumofposts" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="200" 
       android:textStyle="bold" /> 
     </LinearLayout> 

     <View 
      android:layout_width="1dp" 
      android:layout_height="40dp" 
      android:layout_marginBottom="4dp" 
      android:layout_marginLeft="20dp" 
      android:layout_marginRight="25dp" 
      android:layout_marginTop="4dp" 
      android:background="#c0c0c0" /> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:orientation="vertical"> 

      <ImageView 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:layout_gravity="center" 
       android:layout_marginBottom="4dp" 
       android:src="@drawable/nearbycircle" /> 

      <TextView 
       android:id="@+id/mynumoffollowers" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="300" 
       android:textStyle="bold" /> 
     </LinearLayout> 
    </LinearLayout> 
    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/myprofilelist"/> 

</ScrollView> 
0

Я бы рекомендовал использовать RecyclerView в ListView, с 2-мя типами зрения, первый тип представления для элемента с индексом 0, где вы бы загрузить LinearLayout, и любой другой индекс будет иметь тип поста для элементы в вашем списке

0

Это может быть сделано.

Вы макет для MyProfile.java деятельности, как это ...

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <FrameLayout 
     android:id="@+id/content_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
</LinearLayout> 

После этого есть два разных фрагмента

MyProfileFragment - это будет содержать данные о пользователе Bio, убедитесь, что это является Fragment Вы загрузите первый код, когда вы начнете свою деятельность MyProfile

- это будет список, который вы хотите показать

получить событие в действии MyProfile.java, относящееся к прокрутке вверх и вниз, и использовать этот xml для отображения анимации вверх и вниз.

MyListFragment fragment = new MyListFragment(); 
    final FragmentManager fm = getSupportFragmentManager(); 
    final FragmentTransaction ft = fm.beginTransaction(); 
    ft.setCustomAnimations(R.anim.fragment_slide_up_enter, R.anim.fragment_slide_down_exit) 
       .replace(R.id.content_main, fragment, "place") 
       .addToBackStack("FRAGMENT_TAG") 
       .commit(); 

использовать следующий XML, который вы бы сохранить в res/anim каталог в вашем проекте андроида

fragment_slide_down_exit.xml

:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromXDelta="0" android:fromYDelta="-1000" android:duration="1500"/> 
</set> 

fragment_slide_up_en ter.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromXDelta="0" android:fromYDelta="1000" android:duration="1500"/> 
</set> 
0

Вы можете использовать :: Сворачивание панели инструментов Layout Вот один пример ссылки на ТНТ: CollapsingToolbarLayout

Для получения дополнительной информации Google на :: CollapsingToolbarLayout

Смежные вопросы