2016-03-07 2 views
1

У меня есть вопрос о проблеме изображения, нажмите:О Image Выпустить

Я использую эффект параллакса с липким, в этом мой Viewpager не работает на нажатия. Мое требование, если пользователь нажимает на него, тогда он должен перенаправить на другую страницу. Я использую для этого ссылку this.

Я использую Viewpager вместо Imageview, а Viewpager имеет некоторое скольжение изображения. Это не работает. Я получаю массив изображений.

Любая идея, где я ошибаюсь?

Спасибо.

My Code: 
public class MainActivity extends ActionBarActivity { 

private TextView stickyView; 
private ListView listView; 
private View heroImageView; 

private View stickyViewSpacer; 

private int MAX_ROWS = 20; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    /* Initialise list view, hero image, and sticky view */ 
    listView = (ListView) findViewById(R.id.listView); 
    heroImageView = findViewById(R.id.heroImageView); 
    stickyView = (TextView) findViewById(R.id.stickyView); 

    heroImageView.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Toast.makeText(CollectionDetailActivity.this, "click", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    /* Inflate list header layout */ 
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View listHeader = inflater.inflate(R.layout.list_header, null); 
    stickyViewSpacer = listHeader.findViewById(R.id.stickyViewPlaceholder); 

    /* Add list view header */ 
    listView.addHeaderView(listHeader); 

    /* Handle list View scroll events */ 
    listView.setOnScrollListener(new AbsListView.OnScrollListener() { 

     @Override 
     public void onScrollStateChanged(AbsListView view, int scrollState)   { 
     } 

     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 

      /* Check if the first item is already reached to top.*/ 
      if (listView.getFirstVisiblePosition() == 0) { 
       View firstChild = listView.getChildAt(0); 
       int topY = 0; 
       if (firstChild != null) { 
        topY = firstChild.getTop(); 
       } 

       int heroTopY = stickyViewSpacer.getTop(); 
       stickyView.setY(Math.max(0, heroTopY + topY)); 

       /* Set the image to scroll half of the amount that of ListView */ 
       heroImageView.setY(topY * 0.5f); 
      } 
     } 
    }); 


    /* Populate the ListView with sample data */ 
    List<String> modelList = new ArrayList<>(); 
    for (int i = 0; i < MAX_ROWS; i++) { 
     modelList.add("List item " + i); 
    } 

    ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list_row, modelList); 
    listView.setAdapter(adapter); 
} 
} 
+0

ли вы добавить Нажмите событие в что изображение? –

+0

Да. Я думаю, что его эффект оттого почему его не нажимает –

+0

Отправьте свой код здесь. –

ответ

0

Посмотрите на иерархию, ListView на ImageView и событие click будет обработано ListView. StickyView в ListView. Если вам нужно обработать событие clickView Image, вы можете использовать элемент пространства событий click (layout_header) ListView.

Изменить ваш:

heroImageView.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Toast.makeText(CollectionDetailActivity.this, "click", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

код этого:

stickyView.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Toast.makeText(MainActivity.this, "stickyView clicked", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

и добавить для обработки нажмите событие ImageView:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     if (position == 0) { 
      Toast.makeText(MainActivity.this, "heroImageView clicked", Toast.LENGTH_SHORT).show(); 
     } else { 
      //ListView item clicked 
     } 
    } 
}); 

Complete code

+0

Я использую Viewpager вместо Imageview, то как я могу управлять этим сценарием? –

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