【问题标题】:Android : Views is not showing, and only the background (the viewgroup) is showingAndroid:视图未显示,仅显示背景(视图组)
【发布时间】:2019-10-13 12:21:52
【问题描述】:

这是我的问题:

我刚刚创建了可以通过 MainActivity 中的 Menu 访问的 AboutActivity。

问题是,activity_about 没有显示由 2 个 Textview 和一个 CircleImageView 组成的视图。

这是 activity_about.xml 的设计视图(以及问题的预览):

https://i.stack.imgur.com/33Rky.png

这些是代码:

MainActivity

package com.example.amgiwork
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.Menu
import android.view.MenuItem
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import java.lang.Exception    

class MainActivity : AppCompatActivity() {
         private lateinit var rvEmployees: RecyclerView
         private var list: ArrayList<Employee> = arrayListOf()

         override fun onCreate(savedInstanceState: Bundle?) {
             super.onCreate(savedInstanceState)
             setContentView(R.layout.activity_main)

             rvEmployees = findViewById(R.id.rv_employees)
             rvEmployees.setHasFixedSize(true)

             list.addAll(EmployeeData.listData)
             showRecyclerList()
         }

         private fun showRecyclerList() {
             rvEmployees.layoutManager = LinearLayoutManager(this)
             val listHeroAdapter = ListEmployeeAdapter(list)
             rvEmployees.adapter = listHeroAdapter
         }

         private fun showAboutActivity() {
             try {
                 val intent = Intent(this, AboutActivity::class.java)
                 startActivity(intent)
                 finish()
             }
             catch (e: Exception) {
                 Log.w("showAboutActivity", e.message.toString())
             }
         }

         override fun onCreateOptionsMenu(menu: Menu): Boolean {
             menuInflater.inflate(R.menu.menu_main, menu)
             return super.onCreateOptionsMenu(menu)
         }

         override fun onOptionsItemSelected(item: MenuItem): Boolean {
             setMode(item.itemId)
             return super.onOptionsItemSelected(item)
         }
         private fun setMode(selectedMode: Int) {
             when (selectedMode) {
                 R.id.action_employee_list -> {
                 }
                 R.id.action_about -> {
                     showAboutActivity()
                 }
             }
         }
     }

关于活动

     package com.example.amgiwork

     import android.content.Intent
     import androidx.appcompat.app.AppCompatActivity
     import android.os.Bundle
     import android.util.Log
     import android.view.Menu
     import android.view.MenuItem
     import java.lang.Exception

     class AboutActivity : AppCompatActivity() {

         override fun onCreate(savedInstanceState: Bundle?) {
             super.onCreate(savedInstanceState)
             setContentView(R.layout.activity_about)

         }

         private fun showMainActivity() {
             try {
                 val intent = Intent(this, MainActivity::class.java)
                 startActivity(intent)
                 finish()
             }
             catch (e: Exception) {
                 Log.w("showMainActivity", e.message.toString())
             }
        }

         override fun onCreateOptionsMenu(menu: Menu): Boolean {
             menuInflater.inflate(R.menu.menu_main, menu)
             return super.onCreateOptionsMenu(menu)
         }

         override fun onOptionsItemSelected(item: MenuItem): Boolean {
             setMode(item.itemId)
             return super.onOptionsItemSelected(item)
        }
         private fun setMode(selectedMode: Int) {
             when (selectedMode) {
                 R.id.action_employee_list -> {
                     showMainActivity()
                 }
                 R.id.action_about -> {
                 }
             }
         }
     }

activity_about.xml

<?xml version="1.0" encoding="utf-8"?>
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/lightYellow">

         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_gravity="center"
             android:layout_marginBottom="100dp"
             android:orientation="vertical"
             tools:ignore="UselessParent">

             <de.hdodenhof.circleimageview.CircleImageView
                 android:id="@+id/tv_dev_image"
                 android:layout_width="match_parent"
                 android:layout_height="190dp"
                 app:civ_border_color="@color/darkRed"
                 app:civ_border_width="5dp"
                 tools:src="@drawable/dev" />

             <TextView
                 android:id="@+id/tv_dev_name"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
                 android:gravity="center"
                 android:maxLines="2"
                 android:textColor="@color/darkRed"
                 android:textSize="32sp"
                 android:textStyle="bold"
                 tools:text="Dyaksa Hanindito" />

             <TextView
                 android:id="@+id/tv_contact"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="15dp"
                 android:gravity="center"
                 android:maxLines="2"
                 android:textColor="@color/darkRed"
                 android:textSize="19sp"
                 tools:text="Contact :" />

             <TextView
                 android:id="@+id/tv_dev_email"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:gravity="center"
                 android:maxLines="2"
                 android:textColor="@color/darkRed"
                 android:textSize="19sp"
                 tools:text="dyaksa.hanindito@indosatooredoo.com" />
         </LinearLayout>
     </LinearLayout>

我在另一台设备上测试过,在另一台电脑上运行项目,结果还是一样。

【问题讨论】:

    标签: android kotlin android-intent android-activity layout


    【解决方案1】:

    这里唯一的错误是您在布局中错误地使用了tools 前缀。在 CircleImageView 和每个 TextView 中将其更改为 android,一切都会正常工作。

    【讨论】:

    • 刚刚将 tools:src="@drawable/dev" 更改为 android:src="@drawable/dev" 并且每当我导航到活动(通过菜单)时我的应用程序崩溃:(
    • 致命异常:主进程:com.example.amgiwork,PID:1519 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.amgiwork/com.example.amgiwork.AboutActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class 。 . .
    • 它看起来像OutOfMemoryException,可能是因为您的@drawable/dev 太大了。尝试提供较小的图像并检查结果。
    • 那么问题出在哪里? ;)
    • 谢谢老兄!,将 tools: 前缀更改为 android: 并将图像源从 900kb 缩小到 40kb。刚刚意识到工具只是帮助 android studio 开发者的标签
    猜你喜欢
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多