我有一個recyclerView
,它在水平導航欄之類的活動下面水平顯示圖標。讓recyclerView物品適合屏幕
RecyclerView適配器和活動
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_realuser_int);
Intent intent= new Intent(this,ListenKeyword.class);
startService(intent);
horizontal_recycler_view= (RecyclerView) findViewById(R.id.horizontal_recycler_view);
Horizontalicons = new ArrayList<>();
Horizontalicons.add(R.drawable.home);
Horizontalicons.add(R.drawable.clock);
Horizontalicons.add(R.drawable.records);
Horizontalicons.add(R.drawable.menu);
horizontalAdapter=new HorizontalAdapter(Horizontalicons);
LinearLayoutManager horizontalLayoutManagaer = new LinearLayoutManager(realuserIntActivity.this, LinearLayoutManager.HORIZONTAL, false);
horizontal_recycler_view.setLayoutManager(horizontalLayoutManagaer);
horizontal_recycler_view.setAdapter(horizontalAdapter);
user=(TextView) findViewById(R.id.textUser);
}
public class HorizontalAdapter extends RecyclerView.Adapter<HorizontalAdapter.MyViewHolder> {
String[]iconnames={"Home", "History", "History", "Menu"};
private List<Integer> Horizontalicons;
public class MyViewHolder extends RecyclerView.ViewHolder {
public ImageView imgIcons;
public MyViewHolder(View view) {
super(view);
imgIcons = (ImageView) view.findViewById(R.id.imgrecycler);
}
}
public HorizontalAdapter(List<Integer> Horizontalicons) {
this.Horizontalicons = Horizontalicons;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.iconrecycler, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
holder.imgIcons.setImageResource(Horizontalicons.get(position));
holder.imgIcons.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(realuserIntActivity.this, iconnames[position], Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getItemCount() {
return Horizontalicons.size();
}
}
XML文件
<android.support.v7.widget.RecyclerView
android:id="@+id/horizontal_recycler_view"
android:background="#263238"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
CUSTOM XML被充氣IN RECYCLERVIEW
<ImageView
android:layout_width="63dp"
android:layout_height="63dp"
android:id="@+id/imgrecycler"
android:layout_marginTop="9dp"
android:layout_marginRight="97dp"
android:paddingLeft="30dp"
/>
我試過在三種不同的設備上運行它。我面臨的問題是,在一個屏幕較小(電話)的設備上只有三個圖標顯示,看到最後一個圖標,你將不得不滾動到左邊看最後一個項目。在更大的屏幕(平板電腦)上顯示所有圖標或項目,而無需滾動。是否有辦法讓所有項目都適合屏幕,而不管屏幕的大小如何。
也許檢查您的應用程序在哪個屏幕上運行,並根據該設置進行佈局。我不知道是否有更好的方法,但可以服務 – Yupi