我有ViewPager,在它下面我有10个按钮.通过单击按钮,例如#4,寻呼机立即转到第4页mPager.setCurrentItem(3);.但是,我想通过水平手指滑动来禁用分页.因此,寻呼完成仅通过点击按钮.那么,我怎么能用手指禁用滑动?
如果你看一下附图.我需要我的按钮才能正确对齐,但由于某种原因,它不适用于'gravity:right'...

这是我的布局代码:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="35dp">
<TextView
android:id="@+id/lblExpenseCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"
android:textColor="#404040"
android:layout_marginLeft="10dp"
android:textSize="20sp"
android:layout_marginTop="9dp" />
<Button
android:id="@+id/btnAddExpense"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:background="@drawable/stitch_button"
android:layout_marginLeft="10dp"
android:text="@string/add"
android:layout_gravity="right"
android:layout_marginRight="15dp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
为什么不工作?!
我的意思是为什么有人希望他们认为是0dip高度?我已经看过很多次,必须有某种技巧,但我不明白.
<TextView android:gravity="top" android:textColor="#FFFF0000"
android:textSize="20dip" android:text="TextView"
android:layout_height="0dip" android:layout_width="fill_parent"
android:id="@+id/contactName"></TextView>
Run Code Online (Sandbox Code Playgroud)
他们为什么不使用例如wrap_content?他们想要实现什么?
我在ListView上面有一个CheckBox,里面有Checkbox项目.因此,当我检查复选框时,我申请notifyDataSetChanged()检查所有检查列表中的所有项目.所以当时我得到了两次getView方法的日志,这意味着当我notifyDataSetChanged()只调用一次时,getView会被调用两次.那么,谁能告诉我为什么我要两次获取日志?为什么getView()被调用两次?
主类 -
checkAll = (CheckBox) findViewById(R.id.my_check_box);
checkAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton checkbox, boolean arg1) {
adapter.notifyDataSetChanged();
}
});
Run Code Online (Sandbox Code Playgroud)
适配器类代码 -
public class myAdapter extends ArrayAdapter<Model> {
private final List<Model> list;
private final Activity context;
private CheckBox checkAll;
public myAdapter(Activity context, List<Model> list, CheckBox checkAll) {
super(context, R.layout.row, list);
this.context = context;
this.list = list;
this.checkAll = checkAll;
}
static class ViewHolder {
protected TextView text;
protected CheckBox checkbox;
}
@Override
public View getView(final …Run Code Online (Sandbox Code Playgroud) android android-widget android-manifest android-emulator android-layout
好的,我遇到了listView的attribut layout_width的问题.
在我的项目中,我的listview的背景图像不符合屏幕的宽度.所以我在wrap_content上设置了layout_width,并且我将listView水平居中.
看起来这是一个坏主意,因为在适配器中,GetView方法被调用的次数是显示的单元格数的3倍以上.如果我在fill_parent上设置layout_width,问题就解决了.我创建了一个显示问题的简单项目.
这是活动的xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
item_list xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
Run Code Online (Sandbox Code Playgroud)
最后活动:
package fr.example.android.listviewbug;
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
public class ExampleListViewBugActivity extends ListActivity{
public static int cpt;
public static final String[] COUNTRIES = new String[] {
"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
"Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", …Run Code Online (Sandbox Code Playgroud)