无论如何都要防止在Android中点按ListView
?当我意外地在ListView
上点击了项目时,我发现了这个,它打开了两个新窗口。有没有办法防止它两次打开同一个窗口。
答案 0 :(得分:0)
尝试引入和覆盖isEnabled方法
@Override
public boolean isEnabled(int position) {
return false;
}
列表视图。
为flag引入一个boolean,为了保持最后一次单击的位置,引入一个int
int recentlyClickedPoisition;
boolean flagRecentClickedPoisition;
覆盖isEnabled方法,如下所示
@Override
public boolean isEnabled(int position) {
if (flagRecentClickedPoisition && recentlyClickedPoisition == position) {
return false;
} else {
return true;
}
}
设置点击监听器中的最后点击位置,如下所示
public void setLastClickedPoisition(int recentlyClickedPoisition) {
flagRecentClickedPoisition = true;
this.recentlyClickedPoisition = recentlyClickedPoisition;
}
希望这对你有用,防止双击,增强。
答案 1 :(得分:0)
您应限制目标活动(点击项目时打开的活动)在任何时间点只有一个实例。
this SO question的答案可以帮助您实现这一目标。这样,如果你不小心双击,你仍会看到一个新的屏幕。
答案 2 :(得分:0)
如果仅在列表中使用诸如TextView之类的单个项目,则只需在此调用中创建一个实现 OnItemClickListener 的类,然后在 onItemClick ()方法中初始化myListView。< strong> setOnItemClickListenet (空); 然后使用 Handler.postDelayed 方法再次设置 onItemClickListener 。 像
let proxy = new Proxy(arr, {
deleteProperty: function(target, property) {
console.log("Deleted %s", property);
return true;
},
set: function(target, property, value, receiver) {
target[property] = value;
console.log("Set %s to %o", property, value);
return true;
}
});
就我而言,这一直有效。
答案 3 :(得分:0)
在您的 XAML 视图页面中,将 isEnable 属性设置为可绑定和双向模式。
<ListView ItemsSource="{Binding items}"
x:Name="listview"
HasUnevenRows="True"
IsEnabled="{Binding IsEnable, Mode=TwoWay}"
RowHeight="10"
SelectionMode="Single"
VerticalScrollBarVisibility="Never">
在您的 xaml 页面的视图模型中:
private bool _isEnable = true;
public bool IsEnable
{
get => _isEnable;
set
{
_isEnable = value; OnPropertyChanged(nameof(IsEnable));
}
}
public ICommand TapCommand => new Command<//Model>(async (obj) =>
{
IsEnable = false;
//your stuff
IsEnable = true;
});
答案 4 :(得分:-1)
只需在列表视图选择中添加listView.setEnabled(false);
,然后在选择响应时或按回按钮后按下即可写入listView.setEnabled(true);