मैं देख रहा हूं कि एंड्रॉइड के लिए MyTubo (या GroupMe) जैसे मेरे एप्लिकेशन के नीचे एक समान बार कैसे प्राप्त करें। कुछ इस तरह:एंड्रॉइड पर MyTubo की तरह नीचे बार [या आईफोन की तरह नेविगेशन बार] कैसे करें?
अपने जवाब के लिए धन्यवाद।
मैं देख रहा हूं कि एंड्रॉइड के लिए MyTubo (या GroupMe) जैसे मेरे एप्लिकेशन के नीचे एक समान बार कैसे प्राप्त करें। कुछ इस तरह:एंड्रॉइड पर MyTubo की तरह नीचे बार [या आईफोन की तरह नेविगेशन बार] कैसे करें?
अपने जवाब के लिए धन्यवाद।
एक अच्छा तरीका एंड्रॉयड में iPhone की UITabBarController के लिए कुछ इसी तरह RadioGroup प्लस radiobuttons का उपयोग करने में होते हैं प्राप्त करने के लिए। इस दृष्टिकोण का अच्छा यह है कि आप केवल इरादे और गतिविधि के बजाय, फ्रैगमेंट या अपनी पसंद के किसी भी चीज़ का उपयोग कर सकते हैं।
Pied Piper के समान परिणाम प्राप्त करने के लिए मैंने blog post लिखा, लेकिन रेडियोग्रुप और रेडियोबटन का उपयोग करके। यह इतालवी में है, लेकिन, सौभाग्य से, कोड अंतरराष्ट्रीय स्तर पर बोलती है;) यहाँ परिणाम:
अधिक विस्तृत नेविगेशन पट्टी डिजाइन के लिए (मूल प्रश्न में हैं) की तरह, मुझे लगता है यह शांत और स्मार्ट drawable का केवल एक बात है ;)
+1 ग्रेट आइडिया मैन, ऐसा करने के लिए रेडियोबूटन का उपयोग करना 10 गुना बेहतर है, यह उत्तर –
स्वीकार किया जाना चाहिए क्या आप अपना प्रश्न स्पष्ट कर सकते हैं? – Rainbowbreeze
+1 मैंने आपके ब्लॉग को देखा और यह अच्छी तरह से किया गया .... –
यह TabActivity
के साथ संभव हो सकता है। बातें निम्नलिखित
आवश्यकताओं ...
TabWidget
साथ TabSpec होने बिल्ला या किसी अन्य विशेष प्रभावTabActivity
कि Activities
होस्ट करता है के लिए प्रत्येक TabSpec
TabHost
और ActivityGoups
मैंने एक स्माइलर स्क्रीन लेआउट बनाया है।
के बाद कदम हैं ...
1. आप अपने TabHost
के तल पर TabWidget
की आवश्यकता होगी अपने res/लेआउट/host.xml में जोड़ने
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#777777">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout
android:id="@+id/layTab"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:background="@drawable/your_navigatio_tab_background_drawable"
android:layout_alignParentBottom="true"
android:layout_centerVertical="true"
>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
/>
</RelativeLayout>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_above="@id/layTab"/>
</RelativeLayout>
</TabHost>
2. अगला आपको selectors
की आवश्यकता होगी, प्रत्येक आपके TabSpec
के लिए, यहां डेमो चयनकर्ता है: res/drawable/h omeselector.xml
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false" android:drawable="@drawable/home_image_when_not_selected"/>
<item android:state_selected="true" android:drawable="@drawable/home_selected" />
</selector>
3. इसके अलावा, आप TabSpecs के लिए लेआउट के लिए आवश्यक होगा कि बिल्ला या कुछ भी विशेष लेआउट प्रभाव पड़ रहा, यहां उदाहरण के लिए मेरी गाड़ी TabSpec होने बिल्ला तो मैं बना दिया है निम्नलिखित लेआउट जो कहा जाता है: रेस /layout/cartbottom.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/cartselector"
android:gravity="right"
>
<Button
android:id="@+id/redbtn"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentTop="true"
android:text="00"
android:paddingBottom="3dp"
android:gravity="right|center_vertical"
android:paddingRight="9dp"
android:textSize="11dp"
android:textStyle="bold"
android:textColor="#ffffff"
android:background="@drawable/red_badge_drawable"
/>
</RelativeLayout>
4. और अंत में TabActivity
package x.y;
import android.app.TabActivity;
import android.content.Intent;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TabHost;
import android.widget.Toast;
import android.widget.TabHost.TabSpec;
public class Host extends TabActivity {
public static Button btnRed; // Works as a badge
//Declared static; so it can be accessed from all other Activities
public static TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.host);
tabHost = (TabHost)findViewById(android.R.id.tabhost);
TabSpec homeTabSpec = tabHost.newTabSpec("tid1");
TabSpec signinTabSpec = tabHost.newTabSpec("tid2");
TabSpec cartTabSpec = tabHost.newTabSpec("tid3");
TabSpec moreTabSpec = tabHost.newTabSpec("tid4");
TabSpec searchTabSpec = tabHost.newTabSpec("tid5");
//Make Intents to your Activities or ActivityGroups
Intent intent1 = new Intent(this, Cart.class);
Intent intent2 = new Intent(this, Home.class);
Intent intent3 = new Intent(this, SignIn.class);
Intent intent4 = new Intent(this, Search.class);
Intent intent5 = new Intent(this, More.class);
LayoutInflater layoutInflater = this.getLayoutInflater();
View layout_with_badge = layoutInflater.inflate(R.layout.cartbottom, null);
btnRed = (Button) layout_with_badge.findViewById(R.id.redbtn);
String cnt = String.valueOf("0");// Number on the badge
btnRed.setBackgroundDrawable(getResources().getDrawable(R.drawable.red_badge_image_drawable));
btnRed.setText(cnt);
btnRed.setOnClickListener(new OnClickListener() {
//@Override
public void onClick(View v) {
tabHost.setCurrentTab(2);
}
});
cartTabSpec.setIndicator(layout_with_badge).setContent(intent1);
Drawable d = getResources().getDrawable(R.drawable.homeselector);
ImageView img1 = new ImageView(this);
img1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
img1.setImageDrawable(d);
homeTabSpec.setIndicator(img1).setContent(intent2);
d = getResources().getDrawable(R.drawable.signinselector);
img1 = new ImageView(this);
img1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
img1.setImageDrawable(d);
signinTabSpec.setIndicator(img1).setContent(intent3);
d = getResources().getDrawable(R.drawable.searchselector);
img1 = new ImageView(this);
img1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
img1.setImageDrawable(d);
searchTabSpec.setIndicator(img1).setContent(intent4);
d = getResources().getDrawable(R.drawable.moreselector);
img1 = new ImageView(this);
img1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
img1.setImageDrawable(d);
moreTabSpec.setIndicator(img1).setContent(intent5);
/* Add tabSpec to the TabHost to display. */
tabHost.addTab(homeTabSpec);
tabHost.addTab(signinTabSpec);
tabHost.addTab(cartTabSpec);
tabHost.addTab(searchTabSpec);
tabHost.addTab(moreTabSpec);
}
}
यह कैसे लग रहा है ...
एंड्रॉइड के चश्मा प्रति, कृपया ऐसा न करें। यह एक आईओएस सम्मेलन है और एंड्रॉइड मंच पर काम नहीं करता है।
http://developer.android.com/design/patterns/pure-android.html
नीचे टैब सलाखों का उपयोग न करें
अन्य प्लेटफार्मों एप्लिकेशन की दृश्यों के बीच स्विच करने के लिए नीचे टैब बार का उपयोग करें। प्रति मंच सम्मेलन, दृश्य नियंत्रण के लिए एंड्रॉइड के टैब स्क्रीन के शीर्ष पर एक्शन बार में दिखाए गए हैं। इसके अलावा, एंड्रॉइड ऐप्स स्प्लिट एक्शन बार पर कार्रवाइयों को प्रदर्शित करने के लिए नीचे बार का उपयोग कर सकते हैं।
आप एंड्रॉयड प्लेटफॉर्म पर अन्य एप्लिकेशन के साथ एक सुसंगत अनुभव बनाने के लिए इस निर्देश का पालन करना चाहिए और कार्यों और Android पर दृश्य में स्विच बीच भ्रम की स्थिति से बचने के लिए।
जोड़ सकता हूं समस्या हमेशा क्लाइंट नीचे टैब बार के लिए पूछती है ताकि कंपनी :(। वे एंड्रॉइड फोन में एक आईफोन ऐप चलाने के लिए चाहते हैं। :( –
अब google इसका उपयोग करता है :) https://www.google.com/design/spec/components/bottom-navigation.html – MilapTank
@ मिलापटैंक हाँ, अब वे करते हैं। Spotify का नया एंड्रॉइड संस्करण इसे लागू करता है। मुझे कहना है, मुझे पसंद नहीं है यह। –
मैं जानता हूँ कि यह सीधे सवाल का जवाब देने के लिए संबंधित नहीं है, लेकिन मुझे लगता है यह ऐसा लगता है कि गूगल नीचे सलाखों का उपयोग कर के बारे में उनके मन बदल गया है उल्लेख करना महत्वपूर्ण है। (से शानदार टिप्पणी के लिए धन्यवाद @ milapTank मैं कुछ खुदाई)
पिछले महीने (2016 फरवरी) गूगल कह रहे थे "का प्रयोग न करें नीचे टैब वाले सलाखों" तककिया बाहर की जांच इस कैश्ड पृष्ठ: https://web.archive.org/web/20160211061655/http://developer.android.com/design/patterns/pure-android.html
वर्तमान में (मार्च 2016) वे इस नोट को हटा दिया और आपको कुछ एनआई भी जोड़ा ce पेज डिजाइन :)
http://developer.android.com/design/patterns/pure-android.html
https://www.google.com/design/spec/components/bottom-navigation.html#bottom-navigation-behavior
यह सिर्फ अनुकूलित छवि पृष्ठभूमि – Blundell
यह शायद अधिक होने की संभावना एक RadioGroup और radiobuttons – Rob
का उपयोग कर एक कस्टम दृश्य इसका एक कस्टम दृश्य जोड़ दिया जाता है के साथ एक TabWidget है के साथ मदद करने के लिए अन्य विचारों के शीर्ष पर – Azlam