类似这样。有没有什么好的方法实现这种布局?android 自带的又这种布局吗?还是要自己用button来写出来?
可以直接使用HorizontalScrollView,<!--横向滑动的容器-->
android:id="@+id/horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none">
<!--装入每一个Tab项容器-->
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"/>
可以通过这个来做,而LinearLayout中的布局可以根据你的需要去设置,这种可以更加灵活
楼主:android没有这种布局。
楼主你可以看看Fragment布局,感觉改改就能变成你这个样子
动态更改adapter
给你个实例代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView) findViewById(R.id.lv);
lv.setAdapter(new MyAdapar());
}
//自定义适配器
private class MyAdapar extends BaseAdapter {
@Override
public int getCount() {
return 7;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v=null;
if(convertView==null){
v=View.inflate(getApplicationContext(),R.layout.item,null);
}else{
v=convertView;
}
return v;
}
}
}
layout文件activity_main.xml:
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
另外在layout中需要创建一个item.xml
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:padding="5dp"
/>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/iv"
android:paddingTop="5dp"
android:paddingLeft="10dp"
android:textSize="20sp"
android:text="国足出线"
/>
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/title"
android:layout_toRightOf="@id/iv"
android:paddingLeft="10dp"
android:textSize="16sp"
android:text="重要信息,国足出线"
/>
巧了,正在弄一个这种东西。自定义一个组件即可。下方是主文件示例代码:
public class PageControl extends LinearLayout implements OnClickListener{
private ImageButton firstImg;
private ImageButton preImg;
private ImageButton nextImg;
private ImageButton endImg;
private TextView totalPageText;
private TextView curPageText;
private int numPerPage=10;
private int curPage=1;
private int count=0;
private OnPageChangeListener pageChangeListener;
public PageControl(Context context) {
super(context);
initPageComposite(context);
}
public PageControl(Context context, AttributeSet attrs) {
super(context, attrs);
initPageComposite(context);
}
public PageControl(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initPageComposite(context);
}
private void initPageComposite(Context context){
this.setPadding(5,5,5,5);
firstImg=new ImageButton(context);
firstImg.setId(1);
firstImg.setImageResource(R.drawable.firstpage);
firstImg.setPadding(0,0,0,0);
LayoutParams layoutParam=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
layoutParam.setMargins(0,0,5,0);
firstImg.setLayoutParams(layoutParam);
firstImg.setOnClickListener(this);
this.addView(firstImg);
preImg=new ImageButton(context);
preImg.setId(2);
preImg.setImageResource(R.drawable.prepage);
preImg.setPadding(0,0,0,0);
layoutParam=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
layoutParam.setMargins(0,0,5,0);
preImg.setLayoutParams(layoutParam);
preImg.setOnClickListener(this);
this.addView(preImg);
nextImg=new ImageButton(context);
nextImg.setId(3);
nextImg.setImageResource(R.drawable.nextpage);
nextImg.setPadding(0,0,0,0);
layoutParam=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
layoutParam.setMargins(0,0,5,0);
nextImg.setLayoutParams(layoutParam);
nextImg.setOnClickListener(this);
this.addView(nextImg);
endImg=new ImageButton(context);
endImg.setId(4);
endImg.setImageResource(R.drawable.lastpage);
endImg.setPadding(0,0,0,0);
layoutParam=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
layoutParam.setMargins(0,0,5,0);
endImg.setLayoutParams(layoutParam);
endImg.setOnClickListener(this);
this.addView(endImg);
totalPageText=new TextView(context);
layoutParam=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.MATCH_PARENT);
layoutParam.setMargins(5,0,5,0);
totalPageText.setLayoutParams(layoutParam);
totalPageText.setText("总页数");
this.addView(totalPageText);
curPageText=new TextView(context);
layoutParam=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.MATCH_PARENT);
layoutParam.setMargins(5,0,5,0);
curPageText.setLayoutParams(layoutParam);
curPageText.setText("当前页");
this.addView(curPageText);
}
/**
* 初始化分页组件的显示状态
* @param newCount
/
public void initPageShow(int newCount){
count=newCount;
int totalPage=count%numPerPage==0?count/numPerPage:count/numPerPage+1;
curPage=1;
firstImg.setEnabled(false);
preImg.setEnabled(false);
if(totalPage<=1){
endImg.setEnabled(false);
nextImg.setEnabled(false);
}else{
endImg.setEnabled(true);
nextImg.setEnabled(true);
}
totalPageText.setText("总页数 "+totalPage);
curPageText.setText("当前页 "+curPage);
}
/*
* 分页按钮被点击时更新状态,该方法要在initPageShow后调用
/
@Override
public void onClick(View view) {
if(pageChangeListener==null){
return;
}
int totalPage=count%numPerPage==0?count/numPerPage:count/numPerPage+1;
switch(view.getId()){
case 1:
curPage=1;
firstImg.setEnabled(false);
preImg.setEnabled(false);
if(totalPage>1){
nextImg.setEnabled(true);
endImg.setEnabled(true);
}
break;
case 2:
curPage--;
if(curPage==1){
firstImg.setEnabled(false);
preImg.setEnabled(false);
}
if(totalPage>1){
nextImg.setEnabled(true);
endImg.setEnabled(true);
}
break;
case 3:
curPage++;
if(curPage==totalPage){
nextImg.setEnabled(false);
endImg.setEnabled(false);
}
firstImg.setEnabled(true);
preImg.setEnabled(true);
break;
case 4:
curPage=totalPage;
nextImg.setEnabled(false);
endImg.setEnabled(false);
firstImg.setEnabled(true);
preImg.setEnabled(true);
break;
default:
break;
}
totalPageText.setText("总页数 "+totalPage);
curPageText.setText("当前页 "+curPage);
pageChangeListener.pageChanged(curPage,numPerPage);
}
public OnPageChangeListener getPageChangeListener() {
return pageChangeListener;
}
/*
* 设置分页监听事件
* @param pageChangeListener
*/
public void setPageChangeListener(OnPageChangeListener pageChangeListener) {
this.pageChangeListener = pageChangeListener;
}
}
这种效果只有网页里面才有吧,Android App里没有人会这样做吧
好神奇,App中还真没见过这样的,并且还有人在做,有空自己也做一下
listView是不支持横向布局的。可以用 RecyclerView。怎么使用,网上很多教程的,http://blog.csdn.net/lmj623565791/article/details/45059587