所以,在我的项目中实现RecyclerView时,我遇到了一个奇怪的问题.我有一个自定义装饰器来实现一致的顶部和底部填充以及元素之间相当不同的填充值.每当我点击刷新,即从后端获取数据并再次填充RecyclerView时,填充会增加,并且每次刷新时都会继续增加.

当我点击刷新(导致AsyncTask再次执行)时,项目之间的空间增加.并且每次刷新都会不断增加.

我有一个像这样的典型RecyclerView
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:focusableInTouchMode="false">
</android.support.v7.widget.RecyclerView>
Run Code Online (Sandbox Code Playgroud)
在RecyclerView中填充内容是CardView,具有以下布局:
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cv"
android:layout_marginLeft="9dp"
android:layout_marginRight="9dp"
>
<RelativeLayout
android:id="@+id/itemLinearTop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="17dp"
android:paddingRight="10dp"
android:paddingLeft="10dp">
<TextView
android:id="@+id/tv1"
android:textColor="@color/logo_black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tv1"
android:textColor="@color/logo_black"
android:layout_alignParentRight="true"
android:textAppearance="?android:attr/textAppearanceMedium" />
<!-- More elements -->
</RelativeLayout>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)
我正在初始化和填充RecyclerView,如下所示:
// In PostExecute of AsyncTask
RecyclerView rv = (RecyclerView) rootView.findViewById(R.id.recyclerview);
RecycleViewAdapter adapter = new FuelPricesRecycleViewAdapter(data);
rv.setAdapter(adapter);
rv.addItemDecoration(new RecyclerViewItemDecoration(30, item_count - 1));
Run Code Online (Sandbox Code Playgroud)
这就是我的RecyclerViewItemDecoration类的样子:
public class RecyclerViewItemDecoration extends RecyclerView.ItemDecoration {
private int …Run Code Online (Sandbox Code Playgroud) 我已经实现了Lollipop中引入的涟漪效应ListView.但它只适用于第一项ListView.我已经按照这个问题的答案,但我无法设置涟漪效应.
我有一个ripple_background.xml在drawable-v21文件夹:
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@android:color/background_dark">
<item>
<shape
android:shape="oval">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
我ListView存在的布局如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ListView
android:id="@+id/listSettings"
android:listSelector="@android:color/transparent"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:divider="@color/price_item_divider"
android:dividerHeight="1dp"
android:drawSelectorOnTop="true"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
内部填充的项目ListView如下(settings_item_row.xml):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="70dp"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:background="@drawable/ripple_background"
android:padding="16dp" >
<ImageView
android:id="@+id/imageViewIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:paddingRight="10dp" />
<TextView
android:id="@+id/textViewName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/imageViewIcon"
android:paddingRight="10dp"
android:textColor="@android:color/black"
android:textSize="18sp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
所以我已经开始迁移到我的Android应用程序的官方支持设计库,替换元素.我刚刚用官方替换了FAB(实现为ImageButton)android.support.design.widget.FloatingActionButton.但是按钮内的图标与其中的图标相比较小ImageButton.可能是什么原因?
FloatingActionButton的实施:
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon" />
Run Code Online (Sandbox Code Playgroud)
尝试添加,app:fabSize="normal但也没有用.
这是它使用后的方式FloatingActionButton:

这就是它在使用它时的样子ImageButton:

有没有办法在基于PHP的网站中嵌入Google+环聊应用?我可以在iframe中加载应用,而无需登陆Google+环聊页面吗?如果是这样,怎么样?

我在Android应用程序中有共享意图,我想知道如何自定义其UI.我在Stackoverflow上浏览了几个相关的问题,其中大多数都讨论了要显示的特定应用程序集.我不希望这样.我希望操作系统能够判断它在共享意图视图中显示的应用程序,但我确实希望看起来像某种方式.就像我附上这个问题的图像一样.此外,有没有办法使其成为自定义UI,而不必自己处理点击事件?先感谢您.
我想在Google Maps Android API v2中启用位置.我想要的是:
我对如何定期更新,选择时间间隔的数量感到困惑.现在,我已经设置了项目来显示地图并使用
googleMap.setMyLocationEnabled(true);
googleMap.setOnMyLocationChangeListener(myLocationChangeListener);
private GoogleMap.OnMyLocationChangeListener myLocationChangeListener = new GoogleMap.OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(Location location) {
LatLng loc = new LatLng(location.getLatitude(), location.getLongitude());
if(googleMap != null){
if(!firstTime){
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(loc).zoom(zoom).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
firstTime = true;
}
lat = location.getLatitude();
lng = location.getLongitude();
Toast.makeText(context, "Location is: " + String.valueOf(lat) + ", "
+ String.valueOf(lng), Toast.LENGTH_LONG).show();
}
}
};
Run Code Online (Sandbox Code Playgroud)
在变量中设置lat/lng.我的问题是: