2016-07-08 9 views
0

3 개의 탭이있는 슬라이딩 레이아웃을 사용하고 있습니다. 첫 번째 탭에서 URL의 이미지를 표시하려고합니다.Android - SlidingTabLayout에 콘텐츠 표시

이미지를 단일보기로로드하려고 시도했지만 정상적으로 작동했습니다. 첫 번째 탭에 대한

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=“myproject.FirstTab”> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="TEST LOADING IMAGE" 
     android:id="@+id/textView" 
     android:layout_marginTop="30dp" 
     android:layout_centerHorizontal="true" /> 

    <ImageView 
     android:layout_width="200dp" 
     android:layout_height="200dp" 
     android:id="@+id/imageView" 
     android:layout_below="@+id/textView" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="66dp" /> 

</RelativeLayout> 

자바 (FirstTab.java) : 여기

public class FirstTab extends ActionBarActivity { 
    Bitmap b; 
    ImageView img; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_first); 
     img = (ImageView) findViewById(R.id.imageView); 
     information info = new information(); 
     info.execute(""); 
    } 

    public class information extends AsyncTask<String, String, String> { 

     @Override 
     protected String doInBackground(String... arg0) { 
      try { 
       URL url = new URL("https://si.wsj.net/public/resources/images/BN-BY925_mag041_OZ_20140318165119.jpg"); 
       InputStream is = new BufferedInputStream(url.openStream()); 
       b = BitmapFactory.decodeStream(is); 
      } catch (Exception e) { 

      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      img.setImageBitmap(b); 
     } 
    } 
} 

내 조각 (LayoutInflater에서이 여기에

내 첫 번째 탭 (activity_first.xml)에 대한 XML이다. java) :

위의 결과는 텍스트보기 만 표시됩니다.

답변

0

mTabLayout.getTabAt (0) .setIcon (R.drawable.needed_icon)

을 시도하거나 이미지와 텍스트를 필요로하는 경우 당신은 당신의 활동에

public class SampleFragmentPagerAdapter extends FragmentPagerAdapter { 
............. 
@Override 
public CharSequence getPageTitle(int position) { 
     Drawable image = ContextCompat.getDrawable(context, imageResId[position]); 
     image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight()); 
     SpannableString sb = new SpannableString(" "); 
     ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM); 
     sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     return sb; 
    } 
} 

다음을이 클래스를 추가 할 필요가하십시오 ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); viewPager.setAdapter(new SampleFragmentPagerAdapter(getSupportFragmentManager(), MainActivity.this));

세부 정보 : https://guides.codepath.com/android/Google-Play-Style-Tabs-using-TabLayout

0

문서로 돌아가서 활동 및 조각이 어떻게 작동하는지 읽어야한다고 생각합니다. 나는 이것이 공격적이라고 말하고 있지만 오히려 코드에 몇 가지 오류가있어 핵심 개념 중 일부를 잘못 이해했다고 의심하게 만듭니다.

먼저 액티비티 (즉, setContentView()에서 수행 한 것)의 레이아웃과 조각에 이미 TextView의 텍스트가 포함되어 있습니다. 그래서 텍스트가 표시됩니다.

AsyncTask도 (현재 가지고있는 문자열의 insted)에 인수로 전달되도록 onDoInBackground의 비트 맵을 반환해야합니다.

SlidingTabsLayout을 가지고 있지만 레이아웃에 SlidingTabsLayout이 없으므로 탭을 어떻게 만들 수 있습니까?

조각은 이미지를로드하지 않습니다 (이 작업은 FirstTab 활동에서 수행됩니다). 그것이 결코 보이지 않는 이유입니다.