2015-09-21 77 views
0

我處於現有項目中的奇怪情況。在我的項目中,我想動態地將一個佈局作爲一個堆棧膨脹。目前在我的項目中,我設法通過添加它們來垂直顯示佈局,這種方法已被我選中,因爲即使我試圖將其顯示爲堆棧,但在運行時只顯示一個圖像,而不是一堆。爲了瞭解我的問題請進行下面的圖片鏈接和代碼如何將圖像視圖和文本的佈局與其他佈局重疊爲堆棧/堆

desired result

acquired_result_when_tried_to_acheive_desired_result

approached way

父佈局:

<LinearLayout android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/imagegallery" 
android:orientation="vertical"></LinearLayout> 

子佈局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<RelativeLayout 
    android:id="@+id/relativeImage" 
    android:layout_width="match_parent" 
    android:layout_height="250dp" 
    android:layout_below="@+id/rl1" 
    android:layout_centerVertical="true" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="15dp" > 

    <RelativeLayout 
     android:id="@+id/parent" 
     android:layout_width="wrap_content" 
     android:layout_height="250dp" 
     android:orientation="vertical" > 

     <Button 
      android:id="@+id/left1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:background="@drawable/close" /> 

     <Button 
      android:id="@+id/right" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:background="@drawable/right" /> 

     <ImageView 
      android:id="@+id/image" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:adjustViewBounds="true" 
      android:background="@drawable/deelpizza" 
      android:paddingBottom="15dp" 
      android:paddingEnd="0dp" 
      android:paddingStart="0dp" 
      android:scaleType="fitCenter" /> 

     <RelativeLayout 
      android:id="@+id/left" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignTop="@+id/image" 
      android:background="@drawable/text_bg" > 

      <ImageView 
       android:id="@+id/imageprew" 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:layout_marginLeft="15dp" 
       android:layout_marginRight="15dp" 
       android:layout_marginTop="15dp" 
       android:background="@drawable/icon_3" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:layout_toRightOf="@+id/imageprew" 
       android:text="This is an exclusive Deel good for today only clime this deel before its close!" 
       android:textColor="#FFFFFF" /> 

      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="15dp" 
       android:layout_below="@+id/imageprew" > 
      </RelativeLayout> 
     </RelativeLayout> 
     <!-- 
     <Button 
     android:id="@+id/left" 
     android:layout_width="match_parent" 
     android:layout_height="80dp" 
     android:layout_alignParentLeft="true" 
     android:background="@drawable/text_bg" 
     android:layout_alignTop="@+id/image" 
     /> 
     --> 

    </RelativeLayout> 
</RelativeLayout> 

<RelativeLayout 
    android:id="@+id/relativeDetails" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/relativeImage" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:background="@drawable/rectangle" > 
    <TextView 
     android:id="@+id/locationText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/descText" 
     android:layout_marginLeft="10dp" 
     android:layout_marginTop="8dp" 
     android:text="woodfire pizza, Los Gatos CA\nLimited time offer, redeemable today only." 
     android:textColor="#000000" /> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="10dp" 
     android:layout_below="@+id/locationText" /> 
    <TextView 
     android:id="@+id/descText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dp" 
     android:layout_marginTop="8dp" 
     android:text="1 large, 2 topping pizza" 
     android:textColor="#000000" 
     android:textSize="20dp" 
     android:textStyle="bold" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="10dp" 
     android:text="$15" 
     android:textColor="#FF0000" 
     android:textSize="25dp" /> 
</RelativeLayout> 

JavaCode:

private void addImagesToThegallery() { 
    LinearLayout imageGallery = (LinearLayout)findViewById(R.id.imagegallery); 
    //imageGallery.setPadding(0, 0, 0, 30); 
    LayoutInflater layoutInfralte=(LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    List views=new ArrayList(); 
     View view; 
    for(int j=0; j<=5; j++) 
    { 
     view=layoutInfralte.inflate(R.layout.newdeels, null); 
     view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
     views.add(view); 
    } 
    for(int i = 0; i<views.size(); i++) 
    { 
     imageGallery.addView((View) views.get(i)); 
     } 

請通過我的代碼,讓我知道我要去哪裏錯了,讓我知道,如果我在任何地方不清楚

+0

檢出:https://github.com/kikoso/Swipeable-Cards –

+0

爲什麼你使用2迭代在父佈局內​​添加視圖。而不是2次迭代,你可以做出第一個。 –

+0

views.add(view);用imageGallery.add替換(view);並刪除第二次迭代 –

回答

0

更改頁邊距頂部使觀點降低一點

for(int j=0; j<=5; j++) 
     { 
      view=layoutInfralte.inflate(R.layout.newdeels, null); 
      LinearLayout.LayoutParams lp=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
      lp.setMargins(left,5*j, right, bottom); 
      view.setLayoutParams(lp); 
      views.add(view); 
     } 
     for(int i = 0; i<views.size(); i++) 
     { 
      imageGallery.addView((View) views.get(i)); 
      } 
0

結帳以下

Github : Material Recent Layout

Material Recent Layout

使用

RecentsList recents = (RecentsList) findViewById(R.id.recents); 
recents.setAdapter(new RecentsAdapter() { 
    @Override 
    public String getTitle(int position) { 
     return "Item "+position; 
    } 

    @Override 
    public View getView(int position) { 
     ImageView iv =new ImageView(RecentsActivity.this); 
     iv.setImageResource(R.drawable.mazda); 
     iv.setBackgroundColor(0xffffffff); 
     return iv; 
    } 

    @Override 
    public Drawable getIcon(int position) { 
     return getResources().getDrawable(R.mipmap.ic_launcher); 
    } 

    @Override 
    public int getHeaderColor(int position) { 
     return colors[random.nextInt(colors.length)]; 
    } 

    @Override 
    public int getCount() { 
     return 10; 
    } 
} 

注意

你需要ŧ o根據您的要求進行修改。

0

在您的父級佈局中嘗試FrameLayout。在子視圖中設置不同的邊距以達到堆疊的效果。

孩子的意見被描繪在一個堆棧,頂部

0

退房最近添加的孩子:github.com/kikoso/Swipeable-Cards

按您的回覆:

嗨,感謝您的迴應,我們的迴應實際上是有效的。但是現在我正在處理另一種情況 - 我想要更新基於滑動的細節,例如:如果卡片被正確滑動,它應該被指示爲就像在卡片被滑動時一樣,應該被指示爲不喜歡如何實際編碼這些輕掃手勢可以請你幫我出

@ashwin對於你應該有likedislike可繪製或自定義視圖。

card.setOnCardDimissedListener(new CardModel.OnCardDismissedListener() { 
    @Override 
    public void onLike() { 
      Log.d("Swipeable Card", "I liked it"); 
    } 

    @Override 
    public void onDislike() { 
      Log.d("Swipeable Card", "I did not liked it"); 
    } 
}); 

使用上面的片段到showhidelikedislike在是onLike()onDislike()相應方法圖。

編輯1:

我想通了什麼問題,你所面對的,如果你只是執行Sample Code。然後它清楚地顯示CardContainer具有SimpleCardStackAdapter作爲適配器,而CardModel被添加到它使用運營商。除了單獨添加的CardModel的最後一個元素外,cardModel Listener僅應用於最後一個元素。如果你想將它應用於所有元素。那麼你應該添加元素SimpleCardStackAdapter,ArrayListCardModel

+0

嗨,我已經使用了這個,但這個問題只是最後一個卡刷卡手勢被識別,而不是從一開始卡例如:如果一個堆棧由四前三張牌的刷卡手勢不被識別,但最後一張卡在日誌中打印的卡已被刷卡正確,請幫我解決這個問題 – ashwin

+0

@ashwin請參閱'Edit1'。 –