के स्वाइप को रोकने वाले चाइल्ड पर ऑनक्लिक लिस्टनर मैं इस link में दिखाए गए डायनामिक व्यू के साथ व्यूपेजर का उपयोग कर रहा हूं। मैं प्रत्येक पेज को व्यूपर में जोड़ रहा हूं। कोड इस प्रकार है के रूप मेंएंड्रॉइड व्यूपेजर
private View.OnClickListener onAppClick=new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String gettext = (String)v.getTag();
String[] splittext = gettext.split(":");
Log.d("TAG","Click Event is Triggered");
}
};
समस्या का सामना करना पड़ रहा हूँ
के रूप में पेज में TextView के लिए
public View createPage()
{
TableLayout table = new TableLayout(mycontext);
TableRow row = new TableRow(mycontext);
for(int i=0; i <= num_of_views; i++)
{
TableLayout catTable = new TableLayout(mycontext);
TableLayout.LayoutParams params = new TableLayout.LayoutParams();
params.height = LayoutParams.MATCH_PARENT;
TableRow catName = new TableRow(mycontext);
catName.setGravity(0x03);
catName.setLayoutParams(params);
TextView cat = new TextView(mycontext);
TableRow.LayoutParams RowParams=
new TableRow.LayoutParams(pixeltoDp(0),pixeltoDp(85));
RowParams.weight = 1;
cat.setLayoutParams(RowParams);
cat.setPadding(35, 0, 5, 0);
cat.setGravity(0x13);
cat.setSingleLine(true);
cat.setHorizontallyScrolling(true);
cat.setFocusable(true);
cat.setFocusableInTouchMode(true);
cat.setLines(1);
cat.setText(data.getCats().get(i).getName());
cat.setTextColor(color);
cat.setSelected(true);
catName.addView(cat);
catTable.addView(catName);
for(int j=0; j < 5; j++)
{
TableRow trChild = new TableRow(mycontext);
trChild.setLayoutParams(params);
trChild.setGravity(0x11);
for (int k=0; k<4; k++)
{
TextView app = new TextView(mycontext);
TableRow.LayoutParams tableRowParams=
new TableRow.LayoutParams(pixeltoDp(0),pixeltoDp(80));
margin = pixeltoDp(11);
tableRowParams.weight = 1;
app.setLayoutParams(tableRowParams);
app.setGravity(0x11);
app.setSingleLine(true);
app.setTextSize(pixeltoDp(12));
app.setTextColor(Color.BLACK);
app.setTypeface(verdana);
int pos = j+(k*5);
if((pos < mysize))
{
Drawable icon = getMyDrawable();
app.setCompoundDrawablesWithIntrinsicBounds(null, icon, null, null);
app.setText("some Name");
app.setTag(i+":"+pos);
app.setEllipsize(TextUtils.TruncateAt.END);
app.setOnClickListener(onMyClick);
}
trChild.addView(app);
}
catTable.addView(trChild);
}
TableRow.LayoutParams tableRowParams=
new TableRow.LayoutParams
(TableRow.LayoutParams.MATCH_PARENT,TableRow.LayoutParams.WRAP_CONTENT);
margin = pixeltoDp(5);
tableRowParams.setMargins(margin,0,margin, pixeltoDp(18));
catTable.setLayoutParams(tableRowParams);
}
row.setGravity(0x03);
table.addView(row);
return table;
}
OnClickListener इस प्रकार प्रत्येक पृष्ठ बना सकते हैं और पेजर एडाप्टर के लिए है इसे जोड़ने के लिए है कि viewpager है स्लाइड्स जब मैं स्क्रीन पर स्वाइप करता हूं लेकिन अगर मेरी अंगुली ऑनक्लिकलिस्टर के साथ टेक्स्ट से स्वाइप शुरू करती है तो पृष्ठ स्लाइड नहीं करता है, क्लिक ईवेंट भी नहीं कहा जाता है। यदि मैं टेक्स्ट व्यू पर क्लिक करता हूं तो क्लिक इवेंट कहा जाता है। मैं यह समझने में सक्षम नहीं हूं कि दर्शक ईवेंट को फ़्लिप करने में क्यों नहीं आ रहा है अगर स्वाइप क्लिक ईवेंट से टेक्स्ट व्यू से शुरू होता है।
बग के कारण का पता लगाने के लिए मैंने व्यूपैज़र में एक ऑनचचलिस्टर जोड़ा और पाया कि दृश्यपटल की स्पर्श घटना को तब कहा जाता है जब पृष्ठ के उस हिस्से पर स्वाइप होता है जहां कोई टेक्स्ट व्यू और स्पर्श ईवेंट नहीं होता है अगर स्वाइप टेक्स्ट व्यू के शीर्ष पर शुरू होता है तो बिल्कुल नहीं कहा जाता है। यदि मैं टेक्स्टव्यू के ऑनक्लिकलिस्टर को हटा देता हूं तो संपूर्ण व्यूपायर बिना किसी समस्या के ठीक से फ़्लिप करता है। तो समस्या यह है कि टेक्स्टव्यू की क्लिक इवेंट व्यूपर की स्पर्श घटनाओं को रोक रही है। कृपया मुझे बताएं कि क्या मैं अपने निर्माण पृष्ठ कोड में कुछ गलत कर रहा हूं। इस फ़ंक्शन में जो दृश्य मैं बना रहा हूं उसे पेजपैप्टर के माध्यम से व्यूपार्जर में जोड़ा गया है जैसा कि मैंने शुरुआत में उल्लिखित ट्यूटोरियल में दिखाया था।
इस पर शोध करने और पोस्ट करने के लिए बहुत बहुत धन्यवाद, मैंने सोचा कि मैं थोड़ी देर के लिए पागल हो रहा था ... – avalancha
धन्यवाद !!! मैं पूरे दिन इसका कारण खोज रहा था ... –
सिंगललाइन = "सत्य" बहिष्कृत है। maxLine = "1" का उपयोग करें –