Android仿京东手机端类别页仿京东手机端类别页
主要为大家详细介绍了Android仿京东手机端类别页,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
京东手机端的类别标签页, 是一个左侧滑动可选择类别, 右侧一个类别明细的列表联动页面. 当用户选择左侧选项, 可在右侧显示
更多选项来选择. 实现方式也不少. 最常见的当然是左侧和右侧各一个Fragment, 左侧Fragment放置ListView, 右侧放显示类别
明细的Fragment. 如果觉得页面包含的Fragment太多, 左侧直接给一个ListView就可以了.不影响效果.
效果图:
例子中值得注意的三点:
左侧列表点击某个Item可以自动上下滑动,使所点击的item自动移至列表中间
点击item后保留背景色不变
右侧布局
针对上面三个点,这里采取如下的解决方法:
计算可见列表的可见首项或末项position值,使用smoothScrollToPosition()方法实现滑动
自定义列表selector按下和松开的背景色,在adapter去更新并控制item的背景色
右侧布局,采用Fragment是最好的. 里面使用ScrollView装载所有数据,可以动态的addView(),removeView(), 网格布局使用
GridView. 由于Fragment, 所以更新数据和更新View都非常方便, 所以例子中直接用静态页面模拟数据了.
重在通过简单的例子解释这种实现思路, 当然实现不是唯一的.
然后,我们先来模拟右侧的Fragment数据,一看就懂的代码:
public class JDFragment extends Fragment{
String TAG = "JDFragment";
private View rootView = null;
private LinearLayout llayout_main = null;
private TextView tv = null;
private LinearLayout.LayoutParams lp_gd = null;
private LinearLayout.LayoutParams lp_tv = null;
private ArrayList<Category> itemList = null;
private GDAdapter adapter = null;
@Override
public void onAttach(Activity activity)
{
Log.e(TAG, "onAttach...");
super.onAttach(activity);
}
@Override
public void onCreate(Bundle savedInstanceState)
{
Log.e(TAG, "onCreate...");