2015-04-20 4 views
0

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

КОД:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

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

     <ImageView 
      android:id="@+id/article_image" 
      android:layout_width="match_parent" 
      android:layout_height="250dp" 
      android:layout_gravity="top" 
      android:scaleType="fitXY" 
      android:src="@drawable/ic_launcher" /> 

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

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       **android:paddingTop="150dp"** 
       android:orientation="vertical" > 

       <TextView 
        android:id="@+id/textView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/hello_world" /> 

       ...so may views... 
      </LinearLayout> 
     </ScrollView> 

    </FrameLayout> 

</LinearLayout> 

Так как я добавил android:paddingTop="150dp" макет прокрутка над изображением, но как изображение будет интерактивным сейчас?

+0

удалить FrameLayout –

+0

@PiotrGolinski в этом случае ImageView будет сверху и макет будет ниже этого. – user2056563

+0

Вы закрыли FrameLayout? –

ответ

0

первая попытка добавить это под существующий макет кадра в файле XML:

<LinearLayout 
    //set id here 
    > 
     <ImageView 
       android:id="@+id/article_image" 
       android:layout_width="match_parent" 
       android:layout_height="250dp" 
       android:layout_gravity="top" 
       android:scaleType="fitXY" 
       android:src="@drawable/ic_launcher" /> 

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

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        **android:paddingTop="150dp"** 
        android:orientation="vertical" > 

        <TextView 
         android:id="@+id/textView1" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="@string/hello_world" /> 

        ...so may views... 
       </LinearLayout> 
      </ScrollView> 
</LinearLayout> 

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

frmLayout.setVisibility(FrameLayout.GONE); 

и

llLayout.setVisibility(LinearLayout.VISIBLE); 

надеюсь, что это будет он Ты.

0

Пожалуйста, можете ли вы обновить свой xml? После этого вы можете легко щелкнуть изображение.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/LinearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <FrameLayout 
      android:id="@+id/frame" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 

      <ImageView 
       android:id="@+id/article_image" 
       android:layout_width="match_parent" 
       android:layout_height="250dp" 
       android:layout_gravity="top" 
       android:scaleType="fitXY" 
       android:src="@drawable/ic_launcher" /> 

      <ScrollView 
       android:layout_width="match_parent" 
       android:layout_height="100dp" 
       android:layout_gravity="bottom"> 

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

        <TextView 
         android:id="@+id/textView1" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="@string/hello_world" /> 

        ...so may views... 
       </LinearLayout> 
      </ScrollView> 

     </FrameLayout> 

    </LinearLayout> 
+0

Я пробовал ваш код, это фиксирует высоту прокрутки, изображение должно быть в режиме ontop, а scollview должно прокручиваться над представлением изображения и заполнять весь экран, я надеюсь, что он станет понятным. – user2056563

+0

@ пользователь2056563 ok я понимаю. Эта библиотека помогает https://github.com/ksoichiro/Android-ObservableScrollView – mustafasevgi

0

попробуйте с относительным родителем и добавьте изображение в изображение сразу после просмотра прокрутки. Также дайте отступы сверху до того же размера вашей высоты изображения.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

     <ScrollView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="bottom"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:paddingTop="250dp"> 


       <TextView 
        android:id="@+id/textView1" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Hello" /> 

      </LinearLayout> 
     </ScrollView> 

    <ImageView 
     android:id="@+id/article_image" 
     android:layout_width="match_parent" 
     android:layout_height="250dp" 
     android:layout_gravity="top" 
     android:scaleType="fitXY" 
     android:focusable="true" 
     android:clickable="true" 
     android:src="@drawable/back" /> 

</RelativeLayout> 
+0

Я думаю, что я пропустил добавить framelayout здесь, но на самом деле framelayout больше не нужно – Abhishek

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