2017-06-23 1 views
1

J'essaie de créer une mise en page incurvée pour lister certains éléments et l'adapter à l'usure Android, mais la page Google Android Developers à ce sujet est très floue. Est-ce que quelqu'un a réussi à créer une mise en page incurvée?Présentation incurvée sur Android Wear 2.0

C'est le développeurs Google que je parle:

https://developer.android.com/training/wearables/ui/lists.html#creating

Si vous avez des conseils pour le réaliser, je serais heureux de le voir.

Répondre

1

Je vous souhaite tout compris maintenant, mais sinon, voici les étapes avec quelques exemples de code:

dans votre round\activity_main.xml utilisation android.support.wear.widget.WearableRecyclerView comme la racine/élément principal:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.wear.widget.WearableRecyclerView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/rv_test" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

<!-- ... --> 

</android.support.wear.widget.WearableRecyclerView> 

Ensuite, sur le MainActivity étendre WearableActivity:

import android.os.Bundle; 
import android.support.wearable.activity.WearableActivity; 
import android.support.wear.widget.WearableRecyclerView 

public class MainActivity extends WearableActivity { 

    private android.support.wear.widget.WearableRecyclerView wearableRecyclerView; 


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

     wearableRecyclerView = findViewById(R.id.rv_test); 
     wearableRecyclerView.setLayoutManager(new WearableLinearLayoutManager(MainActivity.this)); 
     wearableRecyclerView.setEdgeItemsCenteringEnabled(true); 
    } 

    ... 
} 

vous devez vous assurer que vous utilisez le droit d'importation pour WearableRecyclerView (android.support.wear.widget.WearableRecyclerView) à la fois sur le fichier XML et Java

Next (qui n'est pas expliqué dans la page Web Developers crée un ViewHolder:

1 - Tout d'abord créer une mise en page XML (appelé ici circle_view.xml):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/close_button" 
     android:id="@+id/circledImageView"/> 

</LinearLayout> 

2 - Ensuite, créez une classe java (appelé ici TestHolder.java) et étendu à RecyclerView.ViewHolder:

public class TestHolder extends RecyclerView.ViewHolder { 
       protected ImageView imageView; 
       public TestHolder(View itemView) { 
        super(itemView); 
        imageView = (ImageView) itemView.findViewById(R.id.circledImageView); 
       } 
      } 

Puis retour dans le MainActivity.java ajouter ce qui suit en dessous du wearableRecyclerView.setEdgeItemsCenteringEnabled(true); intérieur onCreate:

RecyclerView.Adapter<TestHolder> testHolderAdapter = new RecyclerView.Adapter<TestHolder>() { 
      @Override 
      public TestHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
       View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.circle_view, parent, false); 
       return new TestHolder(view); 
      } 

      @Override 
      public void onBindViewHolder(TestHolder holder, int position) { 

      } 

      @Override 
      public int getItemCount() { 
       //change return number to desired number of items or an array size or list length 
       return 5; 
      } 
     }; 
     wearableRecyclerView.setAdapter(testHolderAdapter); 

C'est tout, exécutez votre application dans un émulateur d'usure arrondie ou sur un tour/tour avec menton montre et profiter de la curvy liste

+0

Salut, été un long moment et n'a pas fait attention à ma notification, mais j'ai réussi à le faire, ne me souviens pas comment c'était pendant un stage et je n'ai pas le code. Je vais mettre est aussi résolu si cela a fonctionné pour vous. –